Thanks for the fast answer, but its the same problem. I added:
<wsdl:message name="GetCategoriesRequest"/>
to my wsdl. But an invokation produces:
java.lang.NullPointerException
at
org.apache.axis2.context.MessageContext.setEnvelope(MessageContext.java:681)
at org.apache.axis2.ProductStub.GetCategories(ProductStub.java:119)
at ProductTest.main(ProductTest.java:10)
Here is the new WSDL again:
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://www.example.org/Product/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
targetNamespace="http://www.example.org/Product/">
<wsdl:types>
<xsd:schema targetNamespace="http://www.example.org/Product/"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
<xsd:element name="Categories">
<xsd:complexType>
<xsd:sequence>
<xsd:element type="xsd:string"
name="Category"
maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="GetCategoriesRequest" />
<wsdl:message name="GetCategoriesResponse">
<wsdl:part element="tns:Categories" name="part1" />
</wsdl:message>
<wsdl:portType name="ProductPortType">
<wsdl:operation name="GetCategories">
<wsdl:input message="tns:GetCategoriesRequest" />
<wsdl:output message="tns:GetCategoriesResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding type="tns:ProductPortType"
name="ProductSOAP11Binding">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="GetCategories">
<soap:operation style="document"
soapAction="http://www.example.org/Product/GetCategories" />
<wsdl:input>
<soap:body
namespace="http://www.example.org/Product/"
use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body
namespace="http://www.example.org/Product/"
use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding type="tns:ProductPortType"
name="ProductSOAP12Binding">
<soap12:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="GetCategories">
<soap12:operation style="document"
soapAction="http://www.example.org/Product/GetCategories" />
<wsdl:input>
<soap12:body
namespace="http://www.example.org/Product/"
use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body
namespace="http://www.example.org/Product/"
use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Product">
<wsdl:port binding="tns:ProductSOAP11Binding"
name="ProductSOAP11port0">
<soap:address
location="http://localhost:8080/axis2/services/Product" />
</wsdl:port>
<wsdl:port binding="tns:ProductSOAP12Binding"
name="ProductSOAP12port0">
<soap12:address
location="http://localhost:8080/axis2/services/Product" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Simon
> -----Ursprüngliche Nachricht-----
> Von: [email protected]
> Gesendet: 01.08.06 19:28:28
> An: [email protected]
> Betreff: Re: envelop null. how to invoke an axis 2 method?
> You must define a <wsdl:message> for your request message, even if you
> have no arguments. In that case, you just define an empty message,
> e.g.,
>
> <wsdl:message name="GetCategoriesRequest"/>
>
> Anne
>
>
> On 8/1/06, Simon West <[EMAIL PROTECTED]> wrote:
> > Hello,
> > i build my first webservice and i got a big problem. I modified the
> > \samples\wsdl\perf.wsdl. I want to make a method which has no arguments an
> > retrieves an list of strings. I generated the classes and deployed the
> > service. Now the problem is that i cant invoke my method. I get this
> > exception:
> >
> > public static void main(String[] args) {
> > try {
> > ProductStub ps = new ProductStub();
> > ps.GetCategories();
> > } catch (Exception e) {
> > e.printStackTrace();
> > }
> > }
> >
> > produces
> >
> > java.lang.NullPointerException
> > at
> > org.apache.axis2.context.MessageContext.setEnvelope(MessageContext.java:681)
> > at
> > testclient.org.apache.axis2.ProductStub.GetCategories(ProductStub.java:109)
> > at testclient.ProductTest.main(ProductTest.java:14)
> >
> > But i have already implemented the server side as:
> >
> > public class ProductSkeleton {
> >
> > public org.example.www.product.Categories GetCategories()
> > {
> > Categories c = new Categories();
> > c.addCategory("hello");
> > c.addCategory("cya");
> > return c;
> > }
> > }
> >
> > The wsdl is a little bit longer but maybe helpfull:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> > xmlns:tns="http://www.example.org/Product/"
> > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Product"
> > targetNamespace="http://www.example.org/Product/">
> > <wsdl:types>
> > <xsd:schema
> > targetNamespace="http://www.example.org/Product/">
> > <xsd:element name="Categories">
> > <xsd:complexType>
> > <xsd:sequence>
> > <xsd:element
> > name="Category" type="xsd:string"
> > minOccurs="1"
> > maxOccurs="unbounded">
> > </xsd:element>
> > </xsd:sequence>
> > </xsd:complexType>
> > </xsd:element>
> > </xsd:schema>
> > </wsdl:types>
> > <wsdl:message name="GetCategoriesResponse">
> > <wsdl:part element="tns:Categories"
> > name="GetCategoriesResponse" />
> > </wsdl:message>
> > <wsdl:portType name="Product">
> > <wsdl:operation name="GetCategories">
> > <wsdl:input message="tns:GetCategoriesRequest" />
> > <wsdl:output message="tns:GetCategoriesResponse" />
> > </wsdl:operation>
> > </wsdl:portType>
> > <wsdl:binding name="ProductSOAP" type="tns:Product">
> > <soap:binding style="document"
> > transport="http://schemas.xmlsoap.org/soap/http" />
> > <wsdl:operation name="GetCategories">
> > <soap:operation
> >
> > soapAction="http://www.example.org/Product/GetCategories" />
> > <wsdl:input>
> > <soap:body parts="GetCategoriesRequest"
> > use="literal" />
> > </wsdl:input>
> > <wsdl:output>
> > <soap:body parts="GetCategoriesResponse"
> > use="literal" />
> > </wsdl:output>
> > </wsdl:operation>
> > </wsdl:binding>
> > <wsdl:service name="Product">
> > <wsdl:port binding="tns:ProductSOAP" name="ProductSOAP">
> > <soap:address location="http://www.example.org/" />
> > </wsdl:port>
> > </wsdl:service>
> > </wsdl:definitions>
> >
> > Maybe someone can help me how to invoke this method?
> >
> > Best regards
> > Simon
> > _____________________________________________________________________
> > Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
> > http://smartsurfer.web.de/?mc=100071&distributionid=000000000071
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
______________________________________________________________
Verschicken Sie romantische, coole und witzige Bilder per SMS!
Jetzt bei WEB.DE FreeMail: http://f.web.de/?mc=021193
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]