Hello,

I want to create a service with a JavaBean as an INOUT-parameter but I get the
following exception:

===============
java.lang.IllegalArgumentException: Illegal argument passed to
ParameterDesc.setJavaType.  The java type
org.dokustelle.model.work.Diplombereich does not match the mode inout
===============

My WSDD-file is:
===============
<deployment xmlns="http://xml.apache.org/axis/wsdd/";
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>

 <service name="PlaceService" provider="java:RPC">
  <parameter name="allowedMethods" value="*"/>
  <parameter name="className" value="org.dokustelle.services.PlaceService"/>
 </service>

 <service name="WorkService" provider="java:RPC">
    <parameter name="allowedMethods" value="*" />
    <parameter name="className" value="org.dokustelle.services.WorkService" />
    <parameter name="scope" value="request"/>

    <operation name="add" >
      <parameter name="diplombereich_1" mode="INOUT"/>
    </operation>
  </service>

 <beanMapping qname="DokuStelleNS:org.dokustelle.model.work.Diplombereich"
xmlns:DokuStelleNS="urn:DokuStelleService"
languageSpecificType="java:org.dokustelle.model.work.Diplombereich"/>
 <beanMapping qname="DokuStelleNS:org.dokustelle.model.work.Fachbereich"
xmlns:DokuStelleNS="urn:DokuStelleService"
languageSpecificType="java:org.dokustelle.model.work.Fachbereich"/>
 <beanMapping qname="DokuStelleNS:org.dokustelle.model.work.Arbeit"
xmlns:DokuStelleNS="urn:DokuStelleService"
languageSpecificType="java:org.dokustelle.model.work.Arbeit"/>
 <beanMapping qname="DokuStelleNS:org.dokustelle.model.work.Diplomarbeit"
xmlns:DokuStelleNS="urn:DokuStelleService"
languageSpecificType="java:org.dokustelle.model.work.Diplomarbeit"/>

</deployment>
===============

The implementation on the client side:
===============
...
    public void add(Diplombereich diplomBereich){
        Call call = axisConfig.getCall();
        call.setOperationName(new QName(serviceName, "add"));

        try {

            String param1_Name = "diplombereich_1";

            call.addParameter(param1_Name, buildQName(Diplombereich.class),
ParameterMode.INOUT );
            call.setReturnType(XMLType.AXIS_VOID);
            call.invoke(new Object[]{diplomBereich});

            Map ouputParams = call.getOutputParams();
...
===============

What is wrong?
Any information will be helpful,

Thanks
Oliver Nautsch


Reply via email to