Hmm.. I'm wondering if the WSDL checking in the Axis 
org.apache.axis.client.Service initService(...) method is becoming too 
strict... 

Given the perfectly valid schema (taken from one of IBM's Web Services 
Toolkit demos), I'm getting an error [2].  The schema is referenced from a 
WSDL file used to initialize a Service object. 

In one test, I modified the schema to include an <import namespace="
http://www.w3.org/2000/09/xmldsig#"; /> to see if that would clear up the 
problem and it does not.

IMHO, Axis should not die if it cannot find a schema definition for a 
referenced type that is not part of the targetNamespace.  If Axis cannot 
find the definition for the referenced type, then it should treat it as a 
generic MessageElement without explicit type information. 

[1] == AriesTypes.xsd
[2] == err.out.txt (error output)



- James Snell
     IBM Emerging Technologies
     [EMAIL PROTECTED]
     (559) 587-1233 (office)
     (700) 544-9035 (t/l)
     Programming Web Services With SOAP
         O'Reilly & Associates, ISBN 0596000952

     Have I not commanded you? Be strong and courageous. 
     Do not be terrified, do not be discouraged, for the Lord your 
     God will be with you whereever you go.    - Joshua 1:9

Attachment: AriesTypes.xsd
Description: Binary data

javax.xml.rpc.ServiceException: Error processing WSDL document:  
java.io.IOException: Error: Cannot find referenced type 
'{http://www.w3.org/2000/09/xmldsig#}X509DataType' for type 
'{http://com.ibm.aries/ariesTypes}X509DigitalCertificate'
        at org.apache.axis.client.Service.initService(Service.java:290)
        at org.apache.axis.client.Service.<init>(Service.java:198)
        at aries.pcmart.PortalServlet.sendOrder(PortalServlet.java:287)
        at aries.pcmart.PortalServlet.processRequest(PortalServlet.java:243)
        at aries.pcmart.PortalServlet.doPost(PortalServlet.java:83)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
com.ibm.servlet.engine.webapp.StrictServletInstance.doService(ServletManager.java:827)
        at 
com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service(StrictLifecycleServlet.java:167)

        at 
com.ibm.servlet.engine.webapp.IdleServletState.service(StrictLifecycleServlet.java:297)

        at 
com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service(StrictLifecycleServlet.java:110)

        at 
com.ibm.servlet.engine.webapp.ServletInstance.service(ServletManager.java:472)
        at 
com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch(ServletManager.java:1012)

        at 
com.ibm.servlet.engine.webapp.ServletInstanceReference.dispatch(ServletManager.java:913)

        at 
com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.handleWebAppDispatch(Unknown 
Source)
        at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.dispatch(Unknown 
Source)
        at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.forward(Unknown 
Source)
        at com.ibm.servlet.engine.srt.WebAppInvoker.doForward(WebAppInvoker.java:91)
        at 
com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:184)
        at 
com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:67)

        at 
com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:122)

        at 
com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(OSEListener.java:315)
        at 
com.ibm.servlet.engine.http11.HttpConnection.handleRequest(HttpConnection.java:60)
        at 
com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:323)
        at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:252)
        at com.ibm.ws.util.CachedThread.run(ThreadPool.java:122)

Reply via email to