Thanks  Tim,

You are right about that it appears I am trying to use DII ;-)

But I still have the 500 Error...


Any Hints ?

Thank you a lot already !

Kai


On the Clientside I use call.register() for registering (like
userguide/example5 in axis)


        Service service = new Service();
        QName    qn     = new QName( "urn:BankingService", "Methoden" );
        QName    qnb    = new QName( "urn:BankingService", "MethodDescriptions" );

        Call call = (Call) service.createCall();

        call.registerTypeMapping(banking.bo.Methoden.class, qn,
                 new
org.apache.axis.encoding.ser.BeanSerializerFactory(banking.bo.Methoden.class
, qn),
                 new
org.apache.axis.encoding.ser.BeanDeserializerFactory(banking.bo.Methoden.cla
ss, qn));
        call.registerTypeMapping(banking.bo.MethodDescriptions.class, qnb,
                 new
org.apache.axis.encoding.ser.BeanSerializerFactory(banking.bo.MethodDescript
ions.class, qnb),
                 new
org.apache.axis.encoding.ser.BeanDeserializerFactory(banking.bo.MethodDescri
ptions.class, qnb));


Is there any difference to TypeMappingRegistry ?


My wsdl file (shortend) says:

<?xml version="1.0" encoding="UTF-8" ?>
<wsdl:definitions
targetNamespace="http://localhost:8080/axis/services/Banking";
xmlns="http://schemas.xmlsoap.org/wsdl/";
xmlns:apachesoap="http://xml.apache.org/xml-soap";
xmlns:impl="http://localhost:8080/axis/services/Banking";
xmlns:intf="http://localhost:8080/axis/services/Banking";
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:tns1="urn:BankingService"         xmlns:tns3="http://bo.banking";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
<wsdl:types>
  <schema targetNamespace="urn:BankingService"
xmlns="http://www.w3.org/2001/XMLSchema";>
  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"; />
  <complexType name="Methods">
        <sequence>
                <element name="erlaubt" nillable="true" type="apachesoap:Vector" />
        </sequence>
  </complexType>
  <complexType name="MethodDescriptions">
  <sequence>
        <element name="exception" nillable="true" type="xsd:string" />
        <element name="name" nillable="true" type="xsd:string" />
        <element name="signatur" nillable="true" type="apachesoap:Vector" />
        <element name="returnValue" nillable="true" type="xsd:string" />
  </sequence>
  </complexType>
  </schema>
 <schema targetNamespace="http://xml.apache.org/xml-soap";
xmlns="http://www.w3.org/2001/XMLSchema";>
  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"; />
 <complexType name="Vector">
        <sequence>
                <element maxOccurs="unbounded" minOccurs="0" name="item"
type="xsd:anyType" />
        </sequence>
  </complexType>
  </schema>
 <schema targetNamespace="http://localhost:8080/axis/services/Banking";
xmlns="http://www.w3.org/2001/XMLSchema";>
  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"; />
 <complexType name="ArrayOf_xsd_string">
 <complexContent>
 <restriction base="soapenc:Array">
  <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]" />
  </restriction>
  </complexContent>
  </complexType>
  </schema>
</wsdl:types>
 <wsdl:message name="loginRequest">
  <wsdl:part name="accountNo" type="xsd:string" />
  <wsdl:part name="pw" type="xsd:string" />
  </wsdl:message>
 <wsdl:message name="loginResponse">
  <wsdl:part name="loginReturn" type="tns1:Methods" />
  </wsdl:message>
 <wsdl:portType name="ServerPipeline">
 <wsdl:operation name="login" parameterOrder="accountNo pw">
   <wsdl:input message="impl:loginRequest" name="loginRequest" />
   <wsdl:output message="impl:loginResponse" name="loginResponse" />
   </wsdl:operation>
 </wsdl:portType>
- <wsdl:binding name="BankingSoapBinding" type="impl:ServerPipeline">
  <wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"; />
  <wsdl:operation name="login">
  <wsdlsoap:operation soapAction="" />
  <wsdl:input name="loginRequest">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://localhost:8080/axis/services/Banking"; use="encoded" />
  </wsdl:input>
  <wsdl:output name="loginResponse">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://localhost:8080/axis/services/Banking"; use="encoded" />
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
 <wsdl:service name="ServerPipelineService">
 <wsdl:port binding="impl:BankingSoapBinding" name="Banking">
  <wsdlsoap:address location="http://localhost:8080/axis/services/Banking";
/>
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>


My wsdd file looks like:

<deployment xmlns="http://xml.apache.org/axis/wsdd/";
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>

  <service name="Banking" provider="java:RPC">
  <parameter name="className" value="banking.server.ServerPipeline"/>
  <parameter name="allowedMethods" value="*"/>
  <beanMapping qname="myNS:Methods" xmlns:myNS="urn:BankingService"
languageSpecificType="java:banking.bo.Methoden"/>
  <beanMapping qname="myNS:MethodDescriptions"
xmlns:myNS="urn:BankingService"
languageSpecificType="java:banking.bo.MethodDescriptions"/>
   </service>

</deployment>



>Once you've made beans of all the classes that need to cross the wire, you
>will also need to register those types. On the server-side you'd do this
>using the <beanmapping> element in the WSDD, while deploying. If using
>generated stubs, you don't need to do anything to register those types on
>the client side, but you would need to register additional type mappings if
>using dynamic invocation as you appear to be trying to do.
>Hope this [is accurate and] helps...
>Tim


>>I get an "Error : (500)Internal Server Error" when I access my
>>server-WS-Method :

>>public Methods login(String AccountNumber, String pw) {

>>My Client accesses this by :

>>Methods obj = (Methods) call.invoke(new Object[] { "0123456789", "ABC" });


>>I use JavaBeans,which holds a java.util.Vector filled with other
>>custom objects.


>>public class Methods {
>>      public Vector methodDescriptions;
>>}

>>public class MethodDescriptions{
>>      public String name;
>>      public String returnvalue;
>>      public Vector signature; // filled with Strings
>>}















Reply via email to