2011-02-10 18 views
8

Môi trường triển khai: Windows Server 2008, Tomcat 7.0.5, Oracle JRE 1.6. Môi trường phát triển cùng với Eclipse Helios.OpenSAML bootstrap() lưới tôi "InputStream không thể rỗng"

Khi tôi cố gắng triển khai ứng dụng Java của mình sử dụng OpenSAML 2.3.1 và kiểm tra nó trực tiếp, nó không muốn chạy. Nhìn qua mã nguồn và theo dõi ngăn xếp, có vẻ như là DefaultBootstrap.bootstrap() kết thúc gây ra java.lang.IllegalArgumentException: InputStream cannot be null. Tôi bao gồm dấu vết ngăn xếp đầy đủ bên dưới.

Phiên bản phần mềm trên hệ thống triển khai đích, hoặc ít nhất được cho là giống hệt như hộp phát triển của tôi, nơi mọi thứ chỉ chạy tốt, nhưng tất nhiên là tôi không triển khai bằng .war . Tôi nhận được cảm giác khác biệt rằng tôi thiếu một số tệp XML hoặc DTD trong kho lưu trữ triển khai, nhưng cảm giác đó không giúp tôi nhiều trong việc sửa chữa nó. Googling cho các phần của stacktrace cũng không thực sự giúp tôi nhiều.

Tôi bắt đầu theo dõi nguyên nhân gốc thực sự của lỗi này ở đâu, vì vậy tôi có thể khắc phục?

2011-feb-10 10:56:08 org.apache.catalina.core.StandardWrapperValve invoke 
ALLVARLIG: Servlet.service() for servlet [se.novasoftware.gabriel.SAMLParser] in context with path [/ServiceTier] threw exception [java.lang.IllegalArgumentException: InputStream cannot be null] with root cause 
java.lang.IllegalArgumentException: InputStream cannot be null 
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:120) 
at org.opensaml.xml.parse.BasicParserPool$DocumentBuilderProxy.parse(BasicParserPool.java:643) 
at org.opensaml.xml.parse.BasicParserPool.parse(BasicParserPool.java:216) 
at org.opensaml.xml.XMLConfigurator.load(XMLConfigurator.java:141) 
at org.opensaml.DefaultBootstrap.initializeXMLTooling(DefaultBootstrap.java:148) 
at org.opensaml.DefaultBootstrap.bootstrap(DefaultBootstrap.java:88) 
at _mynamespace_.saml.ParsedResponse.<init>(ParsedResponse.java:56) 
at _mynamespace_.saml.ParsedResponse.<init>(ParsedResponse.java:104) 
at _mynamespace_.SAMLParser.doPost(SAMLParser.java:29) // servlet entry point 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
at java.lang.Thread.run(Thread.java:662) 

ParsedResponse.java dòng 56 là bootstrap() gọi trong constructor của nó:

private PersedResponse() throws ConfigurationException { 
    DefaultBootstrap.bootstrap(); // line 56 
    ... 

trong khi dòng 104 trong cùng tập tin là các nhà xây dựng đó được gọi từ bên ngoài gọi mặc định tin này hàm tạo:

public ParsedResponse(final String samlXML) 
     throws UnmarshallingException, ConfigurationException { 
    this(); // line 104 
    ... 

Trả lời

19

Thêm openws-1.3.0.jar vào hội đồng triển khai đã thực hiện thủ thuật.

Các vấn đề liên quan