2011-02-10 13 views
8

Środowisko wdrażania: Windows Server 2008, Tomcat 7.0.5, Oracle JRE 1.6. Środowisko programistyczne samo plus Eclipse Helios.Metoda bootstrap OpenSAML() informuje mnie, że "InputStream nie może być pusty"

Kiedy próbuję wdrożyć moją aplikację Java, która korzysta z OpenSAML 2.3.1 i przetestować ją na żywo, nie chce działać. Przeglądając kod źródłowy i ślad stosu, wydaje się, że DefaultBootstrap.bootstrap() kończy się powodując java.lang.IllegalArgumentException: InputStream cannot be null. Załączam pełny ślad stosu poniżej.

Wersje oprogramowania w docelowym systemie wdrażania są, lub przynajmniej powinny być dokładnie takie same, jak na moim polu rozwojowym, gdzie wszystko działa dobrze, ale oczywiście nie wdrażam przy użyciu .war . Mam wrażenie, że brakuje mi jakiegoś pliku XML lub DTD w archiwum wdrożeniowym, ale samo to uczucie nie pomaga mi w naprawieniu tego. Googling dla części stacktrace również nie bardzo mi pomógł.

Gdzie rozpocząć śledzenie rzeczywistej przyczyny głównej tego błędu, aby można go było naprawić?

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 linia 56 jest bootstrap() wywołanie w konstruktorze:

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

natomiast linii 104 w tym samym pliku jest konstruktor zostanie wywołany z zewnątrz wywołującego tę prywatną domyślne Konstruktor:

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

Odpowiedz

19

Dodanie openws-1.3.0.jar do zespołu rozmieszczającego załatwiło sprawę.

Powiązane problemy