Question

Environnement de déploiement: Windows Server 2008, Tomcat 7.0.5, Oracle JRE 1.6. Environnement de développement même plus Eclipse Helios.

Lorsque j'essaie de déployer mon application Java qui utilise OpenSAML 2.3.1 et la tester en direct, elle ne veut pas s'exécuter. En regardant le code source et la trace de pile, il semble que DefaultBootstrap.bootstrap() finit par causer java.lang.IllegalArgumentException: InputStream cannot be null. J'inclus la trace complète de la pile ci-dessous.

Les versions logicielles sur le système de déploiement cible sont, ou du moins sont censées être, exactement les mêmes que sur ma boîte de développement, où tout fonctionne très bien, mais bien sûr, je ne déploie pas en utilisant le .war. J'ai le sentiment distinct que je manque un fichier XML ou DTD dans les archives de déploiement, mais ce sentiment seul ne m'aide pas beaucoup à le réparer. Googler les parties de la StackTrace ne m'a pas non plus beaucoup aidé.

Où dois-je commencer à suivre la cause racine réelle de cette erreur, afin que je puisse le réparer?

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 est l'appel bootstrap () dans son constructeur:

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

Alors que la ligne 104 dans ce même fichier est le constructeur qui est appelé de l'extérieur appelant ce constructeur par défaut privé:

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

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top