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 jnet2000 <ge...@jnet2000.it> on 2007/08/02 21:36:58 UTC

Problem with JAX-WS and AXIS2, Help Me please

Hi All

i'm problem with WS written JAX-WS and AXIS2(1.2 or 1.3)
if use that services.xml (created by plug-in eclipse):
- <#> <service name="*CustomerService*">
  <description>Please Type your service description here</description>
- <#> <messageReceivers>
  <messageReceiver mep="*http://www.w3.org/2004/08/wsdl/in-only*"  
class="*org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver*" />
  <messageReceiver mep="*http://www.w3.org/2004/08/wsdl/in-out*"  
class="*org.apache.axis2.rpc.receivers.RPCMessageReceiver*" />
  </messageReceivers>
  <parameter name="*ServiceClass*"  
locked="*false*">it.my.endpoint.implement.CustomerService</parameter>
  </service>

Generated Exception :
java.lang.RuntimeException: java.lang.RuntimeException: Unexpected  
subelement retrieveCustomerIdentifyByCFResponse

msg soap
request
POST /axis2/services/CustomerService HTTP/1.1
Content-Type: application/soap+xml; charset=UTF-8; action="http:// 
my.it/retrieveCustomerIdentifyByCF"
User-Agent: Axis2
Host: localhost:8888
Transfer-Encoding: chunked

<?xml version='1.0' encoding='UTF-8'?>
   <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap- 
envelope">
      <soapenv:Body>
         <ns1:retrieveCustomerIdentifyByCFRequest xmlns:ns1="http:// 
my.it/data">
            <requestId>1234567890</requestId>
            <cf>CCCFFF84L12H501Z</cf>
         </ns1:retrieveCustomerIdentifyByCFRequest>
      </soapenv:Body>
   </soapenv:Envelope>

response
HTTP/1.1 200 OK
X-Powered-By: Servlet/2.5
Content-Type: application/soap+xml; action="//my.it/ 
CustomerServicePortType/ 
retrieveCustomerIdentifyByCFResponse";charset=UTF-8
Transfer-Encoding: chunked
Date: Thu, 02 Aug 2007 15:55:23 GMT
Server: Sun Java System Application Server Platform Edition 9.0_01

<?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap- 
envelope">
      <soapenv:Body>
         <ns:retrieveCustomerIdentifyByCFResponse xmlns:ns="http:// 
my.it/data">
            <ns:return type="it.my.bean.dto.out.CustomerServiceOutDTO">
               <ns:requestId>00000</ns:requestId>
               <ns:result type="it.my.common.bean.results.Result">
                  <ns:appCode>0055</ns:appCode>
                  <ns:errorCode>00111</ns:errorCode>
                  <ns:resultCode>OK</ns:resultCode>
                  <ns:techMsg>Formatta TUTTO!!!</ns:techMsg>
                  <ns:usrMsg xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:usrMsg>
               </ns:result>
               <ns:customerIdentify  
type="it.my.common.bean.results.CustomerIdentify">
                  <ns:address>via magna grecia</ns:address>
                  <ns:birthDay>19740907</ns:birthDay>
                  <ns:birthPlace xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:birthPlace>
                  <ns:cf>GGGCCC74L09H501Z</ns:cf>
                  <ns:city xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:city>
                  <ns:documentNumber xmlns:xsi="http://www.w3.org/ 
2001/XMLSchema-instance" xsi:nil="true"></ns:documentNumber>
                  <ns:documentType xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:documentType>
                  <ns:email xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:email>
                  <ns:expireDate xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:expireDate>
                  <ns:gender xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:gender>
                  <ns:name xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:name>
                  <ns:nation xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:nation>
                  <ns:nationCode xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:nationCode>
                  <ns:postalCode xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:postalCode>
                  <ns:prov xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:prov>
                  <ns:releaseBy xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:releaseBy>
                  <ns:releaseDate xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:releaseDate>
                  <ns:surname xmlns:xsi="http://www.w3.org/2001/ 
XMLSchema-instance" xsi:nil="true"></ns:surname>
                  <ns:telephoneNumber xmlns:xsi="http://www.w3.org/ 
2001/XMLSchema-instance" xsi:nil="true"></ns:telephoneNumber>
               </ns:customerIdentify>
            </ns:return>
         </ns:retrieveCustomerIdentifyByCFResponse>
      </soapenv:Body>
   </soapenv:Envelope>

---------------------------

if use that services.xml(created by me):
<service name="CustomerService">
    <description>PostPay Payment</description>
   <messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"  
class="org.apache.axis2.jaxws.server.JAXWSMessageReceiver"/>
  <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"  
class="org.apache.axis2.jaxws.server.JAXWSMessageReceiver"/>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/robust-in-only"  
class="org.apache.axis2.jaxws.server.JAXWSMessageReceiver"/>
   </messageReceivers>
    <parameter name="ServiceClass"  
locked="false">it.my.endpoint.implement.CustomerService</parameter>
    <parameter name="load-on-startup">true</parameter>
    <parameter name="useOriginalwsdl">true</parameter>
</service>

Generated Exception :
org.apache.axis2.AxisFault: Transport error: 400 Error: Bad Request
    at org.apache.axis2.transport.http.HTTPSender.handleResponse 
(HTTPSender.java:296)
    at org.apache.axis2.transport.http.HTTPSender.sendViaPost 
(HTTPSender.java:192)
    at org.apache.axis2.transport.http.HTTPSender.send 
(HTTPSender.java:77)
    at  
org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageW 
ithCommons(CommonsHTTPTransportSender.java:327)
    at  
org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke 
(CommonsHTTPTransportSender.java:206)
    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:397)
    at org.apache.axis2.description.OutInAxisOperationClient.send 
(OutInAxisOperation.java:372)
    at  
org.apache.axis2.description.OutInAxisOperationClient.executeImpl 
(OutInAxisOperation.java:211)
    at org.apache.axis2.client.OperationClient.execute 
(OperationClient.java:163)
    at  
it.my.client.CustomerServiceCustomerServiceSOAP12PortStub.retrieveCustom 
erIdentifyByCF(CustomerServiceCustomerServiceSOAP12PortStub.java:154)
    at it.my.client.ClientProva.main(ClientProva.java:14)

msg soap

request
   <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap- 
envelope">
      <soapenv:Body>
         <ns1:RetrieveCustomerIdentifyByCFRequest xmlns:ns1="http:// 
m,y.it/data">
            <requestId>1234567890</requestId>
            <cf>CCCFFF84L12H501Z</cf>
         </ns1:RetrieveCustomerIdentifyByCFRequest>
      </soapenv:Body>
   </soapenv:Envelope>

response
<?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap- 
envelope">
      <soapenv:Body>
         <soapenv:Fault>
            <soapenv:Code>
               <soapenv:Value>soapenv:Sender</soapenv:Value>
            </soapenv:Code>
            <soapenv:Reason>
               <soapenv:Text xml:lang="en- 
US">java.lang.NullPointerException</soapenv:Text>
            </soapenv:Reason>
            <soapenv:Detail></soapenv:Detail>
         </soapenv:Fault>
      </soapenv:Body>
   </soapenv:Envelope>

Code Java SEI
package it.my.endpoint.sei;


import it.my.bean.dto.out.CustomerServiceOutDTO;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;


@WebService(name="CustomerService" , targetNamespace="http://my.it")
@SOAPBinding(                  style=SOAPBinding.Style.DOCUMENT,
                parameterStyle=SOAPBinding.ParameterStyle.WRAPPED,
                use=SOAPBinding.Use.LITERAL
            )
                   public interface CustomerServiceInterface {

      @WebMethod(action="http://my.it/retrieveCustomerIdentifyByCF")
    @WebResult 
(name="RetrieveCustomerIdentifyByCFResponse",targetNamespace="http:// 
my.it/data")
    public CustomerServiceOutDTO retrieveCustomerIdentifyByCF(
           @WebParam(name="requestId") String requestId,
           @WebParam(name="cf") String cf
    );
}


WSDL
<wsdl:definitions
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://my.it"
xmlns:typens="http://my.it/data"
targetNamespace="http://my.it">
    <wsdl:types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema"  
attributeFormDefault="qualified" targetNamespace="http://my.it/data">
<!-- TYPE OUT -->
            <complexType name="CustomerServiceOutDTO">
                <sequence>
                    <element name="customerIdentify"  
type="typens:CustomerIdentify"/>
                    <element name="result" type="typens:Result"/>
                </sequence>
            </complexType>
            <complexType name="Result">
                <sequence>
                    <element name="resultCode" type="string"/>
                    <element name="errorCode" type="string"/>
                    <element name="appCode" type="string"/>
                    <element name="techMsg" type="string"/>
                    <element name="usrMsg" type="string"/>
                </sequence>
            </complexType>
            <complexType name="CustomerIdentify">
                <sequence>
                    <element name="cf" type="string"/>
                    <element name="name" type="string"/>
                    <element name="surname" type="string"/>
                    <element name="gender" type="string"/>
                    <element name="email" type="string"/>
                    <element name="birthDay" type="string"/>
                    <element name="birthPlace" type="string"/>
                    <element name="nationCode" type="string"/>
                    <element name="nation" type="string"/>
                    <element name="address" type="string"/>
                    <element name="postalCode" type="string"/>
                    <element name="city" type="string"/>
                    <element name="prov" type="string"/>
                    <element name="telephoneNumber" type="string"/>
                    <element name="documentType" type="string"/>
                    <element name="documentNumber" type="string"/>
                    <element name="releaseBy" type="string"/>
                    <element name="releaseDate" type="string"/>
                    <element name="expireDate" type="string"/>
                </sequence>
            </complexType>
<!-- Elementi IN -->
            <element name="RetrieveCustomerIdentifyByCFRequest">
            <complexType>
                <sequence>
                    <element name="requestId" type="string"/>
                    <element name="cf" type="string"/>
                </sequence>
            </complexType>
            </element>
<!-- Element OUT -->
            <element name="RetrieveCustomerIdentifyByCFResponse"  
type="typens:CustomerServiceOutDTO"/>
        </schema>
    </wsdl:types>
<!-- MESSAGE -->
    <wsdl:message name="RetrieveCustomerIdentifyByCFMessage">
        <wsdl:part name="input"  
element="typens:RetrieveCustomerIdentifyByCFRequest"/>
    </wsdl:message>
    <wsdl:message name="RetrieveCustomerIdentifyByCFResponseMessage">
        <wsdl:part name="data"  
element="typens:RetrieveCustomerIdentifyByCFResponse"/>
    </wsdl:message>
<!-- PORT -->
    <wsdl:portType name="CustomerServicePortType">
        <wsdl:operation name="retrieveCustomerIdentifyByCF">
            <wsdl:input  
message="tns:RetrieveCustomerIdentifyByCFMessage" xmlns:wsaw="http:// 
www.w3.org/2006/05/addressing/wsdl" wsaw:Action="http://my.it/ 
CustomerServicePortType/RetrieveCustomerIdentifyByCF"/>
            <wsdl:output  
message="tns:RetrieveCustomerIdentifyByCFResponseMessage"  
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"  
wsaw:Action="http://my.it/CustomerServicePortType/ 
RetrieveCustomerIdentifyByCFResponse" />
        </wsdl:operation>
    </wsdl:portType>
<!-- BINDING -->
    <wsdl:binding name="CustomerServiceSOAP11Binding"  
type="tns:CustomerServicePortType">
        <soap:binding style="document" transport="http:// 
schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="retrieveCustomerIdentifyByCF">
            <soap:operation soapAction=""/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="CustomerServiceSOAP12Binding"  
type="tns:CustomerServicePortType">
        <soap12:binding transport="http://schemas.xmlsoap.org/soap/ 
http" style="document"/>
        <wsdl:operation name="retrieveCustomerIdentifyByCF">
            <soap12:operation soapAction="http://my.it/ 
retrieveCustomerIdentifyByCF"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
<!-- SERVICE -->
    <wsdl:service name="CustomerService">
        <wsdl:port name="CustomerServiceSOAP11port"  
binding="tns:CustomerServiceSOAP11Binding">
            <soap:address location="http://localhost:8080/axis2/ 
services/CustomerService"/>
        </wsdl:port>
        <wsdl:port name="CustomerServiceSOAP12port"  
binding="tns:CustomerServiceSOAP12Binding">
            <soap12:address location="http://localhost:8080/axis2/ 
services/CustomerService"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

I'm currently using a Sun Application Server 9, JAX-WS, AXIS2 1.3,  
JDK 1.6.


Please,could you kindness help me?
I'm newbie Axis2.
Is a problem of configure Axis2?
Where i'm mistake ?!?!

Thanks in advance for your prompt support.

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org