Deployment Environment: Windows Server 2008, Tomcat 7.0.5, Oracle JRE 1.6. The development environment is the same plus Eclipse Helios.
When I try to deploy my Java application that uses OpenSAML 2.3.1 and test it live, it does not want to run. Looking through the source code and the stack trace, it seems that DefaultBootstrap.bootstrap() ends up calling java.lang.IllegalArgumentException: InputStream cannot be null . I include the full stack trace below.
The software versions in the target deployment system should at least be the same as in my development window, where everything works fine, but of course I do not deploy using .war. I get a distinct sensation that there is no XML or DTD file in the deployment archive, but this feeling does not help me fix it. Googling for stacktrace parts also didn't help me much.
Where can I start tracking the actual root cause of this error, so I can fix it?
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 line 56 is a call to bootstrap () in its constructor:
private PersedResponse() throws ConfigurationException { DefaultBootstrap.bootstrap();
whereas line 104 in the same file is a constructor that is called from the outside, calling this private default constructor:
public ParsedResponse(final String samlXML) throws UnmarshallingException, ConfigurationException { this();
java saml opensaml
Michael Kjörling
source share