You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Chris Williamson <ch...@wolfram.com> on 2003/07/23 21:09:51 UTC

echo example document style

I am trying to get the echo example to work using wrapped style.

I can get the basic (string, int, float, etc) echo's to work doing something
like this in the wsdd...

  <service name="echo2" style="wrapped">
    <namespace>http://soapinterop.org/</namespace>
    <parameter name="className"
value="samples.echo.InteropTestSoapBindingImpl" />
    <parameter name="allowedMethods" value="*" />
  </service>

Then I try to do some of the more advanced echo's (echoStringArray) to work
with something like this in the wsdd...

  <service name="echo2" style="wrapped">
    <namespace>http://soapinterop.org/</namespace>
    <parameter name="className"
value="samples.echo.InteropTestSoapBindingImpl" />
    <parameter name="allowedMethods" value="echoString echoStringArray" />

      <typeMapping
        xmlns:ns="http://soapinterop.org/xsd"
        qname="ns:ArrayOfstring"
        type="java:java.lang.String[]"
        serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
        deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      />

      <operation name="echoString" returnQName="return"
returnType="RTypeNS:string" xmlns:RTypeNS="http://www.w3.org/2001/XMLSchema"
>
        <parameter name="inputString" type="tns:string"
xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
      </operation>
      <operation name="echoStringArray" returnQName="return"
returnType="RTypeNS:ArrayOfstring"
xmlns:RTypeNS="http://soapinterop.org/xsd" >
        <parameter name="inputStringArray" type="tns:ArrayOfstring"
xmlns:tns="http://soapinterop.org/xsd"/>
      </operation>

  </service>

But if I do this, I get an exception...

java.lang.NullPointerException
	at java.lang.Class.isAssignableFrom(Native Method)
	at
org.apache.axis.description.ServiceDesc.syncOperationToClass(ServiceDesc.jav
a:666)
	at
org.apache.axis.description.ServiceDesc.getSyncedOperationsForName(ServiceDe
sc.java:977)
	at
org.apache.axis.description.ServiceDesc.loadServiceDescByIntrospectionRecurs
ive(ServiceDesc.java:851)
	at
org.apache.axis.description.ServiceDesc.loadServiceDescByIntrospection(Servi
ceDesc.java:818)
	at
org.apache.axis.description.ServiceDesc.loadServiceDescByIntrospection(Servi
ceDesc.java:768)
	at
org.apache.axis.description.ServiceDesc.getOperations(ServiceDesc.java:380)
	at
org.apache.axis.transport.http.AxisServlet.reportAvailableServices(AxisServl
et.java:704)
	at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:262)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
	at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:
339)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:256)
	at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
	at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
	at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
	at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:171)
	at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
	at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
	at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
	at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
	at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:392)
	at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
	at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:619)
	at java.lang.Thread.run(Thread.java:536)


I have no idea what this means.  Any ideas what could be causing this?

Is there any documentation that specifies how to use the operation element
in the wsdd file?  When I omit the second operation, echoStringArray, the
wsdl file is generated.  However, the targetNamespace in the schema is then
"" rather than "http://soapinterop.org/".  Any reason for this?  I think I
will probably need to use the operation elements in order to get this to
work.  So the targetNamespace will be important.

Is it even possible to convert the echo example into using wrapped style at
this point?  It would be a nice useful example.

Thanks for any help,

Chris Williamson


Re: echo example document style

Posted by Davanum Srinivas <di...@yahoo.com>.
Chris,

Please start from a doc/lit wsdl. For example you can use this one
(http://cvs.apache.org/viewcvs/xml-axis/java/test/wsdl/interop3/docLit/interoptestdoclit.wsdl).
Run WSDL2Java on this wsdl to generate your server-side code.

Thanks,
dims

--- Chris Williamson <ch...@wolfram.com> wrote:
> I am trying to get the echo example to work using wrapped style.
> 
> I can get the basic (string, int, float, etc) echo's to work doing something
> like this in the wsdd...
> 
>   <service name="echo2" style="wrapped">
>     <namespace>http://soapinterop.org/</namespace>
>     <parameter name="className"
> value="samples.echo.InteropTestSoapBindingImpl" />
>     <parameter name="allowedMethods" value="*" />
>   </service>
> 
> Then I try to do some of the more advanced echo's (echoStringArray) to work
> with something like this in the wsdd...
> 
>   <service name="echo2" style="wrapped">
>     <namespace>http://soapinterop.org/</namespace>
>     <parameter name="className"
> value="samples.echo.InteropTestSoapBindingImpl" />
>     <parameter name="allowedMethods" value="echoString echoStringArray" />
> 
>       <typeMapping
>         xmlns:ns="http://soapinterop.org/xsd"
>         qname="ns:ArrayOfstring"
>         type="java:java.lang.String[]"
>         serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
>         deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
>         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>       />
> 
>       <operation name="echoString" returnQName="return"
> returnType="RTypeNS:string" xmlns:RTypeNS="http://www.w3.org/2001/XMLSchema"
> >
>         <parameter name="inputString" type="tns:string"
> xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
>       </operation>
>       <operation name="echoStringArray" returnQName="return"
> returnType="RTypeNS:ArrayOfstring"
> xmlns:RTypeNS="http://soapinterop.org/xsd" >
>         <parameter name="inputStringArray" type="tns:ArrayOfstring"
> xmlns:tns="http://soapinterop.org/xsd"/>
>       </operation>
> 
>   </service>
> 
> But if I do this, I get an exception...
> 
> java.lang.NullPointerException
> 	at java.lang.Class.isAssignableFrom(Native Method)
> 	at
> org.apache.axis.description.ServiceDesc.syncOperationToClass(ServiceDesc.jav
> a:666)
> 	at
> org.apache.axis.description.ServiceDesc.getSyncedOperationsForName(ServiceDe
> sc.java:977)
> 	at
> org.apache.axis.description.ServiceDesc.loadServiceDescByIntrospectionRecurs
> ive(ServiceDesc.java:851)
> 	at
> org.apache.axis.description.ServiceDesc.loadServiceDescByIntrospection(Servi
> ceDesc.java:818)
> 	at
> org.apache.axis.description.ServiceDesc.loadServiceDescByIntrospection(Servi
> ceDesc.java:768)
> 	at
> org.apache.axis.description.ServiceDesc.getOperations(ServiceDesc.java:380)
> 	at
> org.apache.axis.transport.http.AxisServlet.reportAvailableServices(AxisServl
> et.java:704)
> 	at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:262)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> 	at
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:
> 339)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:247)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:193)
> 	at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
> va:256)
> 	at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
> eNext(StandardPipeline.java:643)
> 	at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
> 	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> 	at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
> va:191)
> 	at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
> eNext(StandardPipeline.java:643)
> 	at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
> 	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> 	at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
> 	at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
> )
> 	at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
> eNext(StandardPipeline.java:643)
> 	at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
> java:171)
> 	at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
> eNext(StandardPipeline.java:641)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
> )
> 	at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
> eNext(StandardPipeline.java:641)
> 	at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
> 	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> 	at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
> :174)
> 	at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
> eNext(StandardPipeline.java:643)
> 	at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
> 	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> 	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
> 	at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
> 	at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
> ction(Http11Protocol.java:392)
> 	at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
> 	at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
> a:619)
> 	at java.lang.Thread.run(Thread.java:536)
> 
> 
> I have no idea what this means.  Any ideas what could be causing this?
> 
> Is there any documentation that specifies how to use the operation element
> in the wsdd file?  When I omit the second operation, echoStringArray, the
> wsdl file is generated.  However, the targetNamespace in the schema is then
> "" rather than "http://soapinterop.org/".  Any reason for this?  I think I
> will probably need to use the operation elements in order to get this to
> work.  So the targetNamespace will be important.
> 
> Is it even possible to convert the echo example into using wrapped style at
> this point?  It would be a nice useful example.
> 
> Thanks for any help,
> 
> Chris Williamson
> 


=====
Davanum Srinivas - http://webservices.apache.org/~dims/

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com