自动生成的客户端代码测试public class tttttt {
public static void main(String[] args) {
Service s = new CustomerServiceService();
CustomerService cs = s.getPort(CustomerService.class);
cs.getCustomerByName("dalian");
}}
异常
Exception in thread "main" javax.xml.ws.WebServiceException: Unexpected response element {http://objreg.service.gtercn.com}getCustomerByNameResponse expected: {http://localhost:8080/webserviceterminal/services/CustomerService}getCustomerByNameResponse
at com.sun.xml.ws.client.sei.ResponseBuilder$RpcLit.readResponse(ResponseBuilder.java:614)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:121)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
at $Proxy33.getCustomerByName(Unknown Source)
at com.gtercn.webservice.ws.tttttt.main(tttttt.java:9)
用自己写的这段代码正常
public static void main(String[] args) {
Service service = new Service();
Call call;
try {
call = (Call) service.createCall();
call.setTargetEndpointAddress("http://localhost:8080/webserviceterminal/services//CustomerService");
call.setOperation("getCustomerByName");
Class clazz = Customer.class;
QName qn = new QName( "urn:objreg:com:grercn:service", "Customer" );
call.registerTypeMapping(clazz, qn, 
new BeanSerializerFactory(clazz, qn), 
new BeanDeserializerFactory(clazz, qn));
Object obj = call.invoke( new Object[] { "dalian"} );
System.out.println(obj);

} catch (Exception e) {
e.printStackTrace();
}
}
控制台输出:com.gtercn.webservice.client.objreg.Customer@148662配置文件
<service name="CustomerService" provider="java:RPC">
  <parameter name="allowedMethods" value="*"/>
  <parameter name="className" value="com.gtercn.service.objreg.CustomerService"/>
  <beanMapping qname="ns:Customer" xmlns:ns="urn:objreg:com:grercn:service"
             languageSpecificType="java:com.gtercn.service.objreg.Customer"/> </service>

解决方案 »

  1.   

    org.apache.axis.wsdl.WSDL2Java
    -p com.gtercn.webservice.client.es -o src http://localhost:8080/webserviceterminal/services/CustomerService?wsdl代码CustomerServiceService css = new CustomerServiceServiceLocator();
    try {
    CustomerService_PortType p = css.getCustomerService();
    System.out.println(p.getCustomerByName("ddd"));
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
      

  2.   

    我用 jax—ws-ri也出现这个问题,怎么解决??