You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by bu...@apache.org on 2002/11/28 14:34:23 UTC

DO NOT REPLY [Bug 14929] New: - Problem when using axis dynamic proxy with a Sun JAXRPC RI server

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14929>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14929

Problem when using axis dynamic proxy with a Sun JAXRPC RI server

           Summary: Problem when using axis dynamic proxy with a Sun JAXRPC
                    RI server
           Product: Axis
           Version: current (nightly)
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Basic Architecture
        AssignedTo: axis-dev@xml.apache.org
        ReportedBy: cchabanois@cognicase.fr


I tried to use a dynamic proxy as client of a JAXRPC RI Server.

I tried following code using 
- Axis : I got an exception telling that the operation could not be found
Internal Server Error (unrecognized operation: ECHOCHAR1000)
- Sun JAXRPC RI : no problem

    try{
      URL wsdlUrl = new URL("http://localhost:8090/TEST1/jaxrpc/TEST1?WSDL");
      String nameSpaceUri = "http://soapNcl/TEST1";
      String serviceName = "TEST1";
      String portName = "TEST1IFPort"; 

      ServiceFactory serviceFactory = ServiceFactory.newInstance();
      Service serviceTEST1 = serviceFactory.createService(wsdlUrl,
        new QName(nameSpaceUri, serviceName));
  
      TEST1IF service = (TEST1IF) serviceTEST1.getPort(
        new QName(nameSpaceUri, portName),
        TEST1IF.class);

When I use Axis, here is the message that is sent to server :

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <ECHOCHAR1000 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <arg0 xsi:type="xsd:string">hello world</arg0>
  </ECHOCHAR1000>
 </soapenv:Body>
</soapenv:Envelope>


And when JAXRPC RI is used :
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope 
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" 
env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<env:Body>
<ans1:ECHOCHAR1000 xmlns:ans1="http://soapNcl/TEST1">
<String_1 xsi:type="xsd:string">hello world</String_1>
</ans1:ECHOCHAR1000>
</env:Body>
</env:Envelope>

The problem is that no namespace is used for the operation.

Indeed, in AxisClientProxy, we have :
    public Object invoke(Object o, Method method, Object[] objects)
 [...]
            return call.invoke(method.getName(), objects);
 [...]
    }

So it does not use 
call.invoke(QName operationName, Object[] params)