`

CXF 客户端Header和AXIS监控TCP数据

    博客分类:
  • Java
阅读更多

自己生成发布服务端和客户端:

RESTFUL风格

http://www.cnblogs.com/hoojo/archive/2012/07/23/2605219.html

需要引入的JAR包:CXF的,配置好 CXFServlet 。另外引入jsr311-api-1.1.1.jar。

 

自己生成客户端:

1、命令生成:

 

CXF命令生成客户端:

先将CXF2.5源代码下载到D:\webservice\apache-cxf-2.2.5\apache-cxf-2.2.5\bin。使用以下命令:

D:\webservice\apache-cxf-2.2.5\apache-cxf-2.2.5\bin>wsdl2java -d d:/webservice/GenJavaCode/Rebook/CXF2 -client http://172.31.68.103:8082/CEAServiceFront/webservice/RebookFlightService?wsdl

 

使用SOAPUI生成客户端:

1、生成客户端时报错:interface with the same name "com.ceair.muss.rebook.Exception" is already in use. Use a class customization to resolve this conflict.

 解决:不要指定Package再次生成OK

 

2、生成的客户端代码中Date类型变为XMLGregorianCalendar

解决:需要在CXF的BIN目录添加一个转换的XML

a.xml

 

<jaxws:bindings
          xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
          xmlns:xs="http://www.w3.org/2001/XMLSchema"
          xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
          xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <jaxws:bindings  node="wsdl:definitions/wsdl:types/xs:schema[@targetNamespace='http://service.front.ceair.com.cn/']">
      <jxb:globalBindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <jxb:javaType name="java.util.Date" xmlType="xs:dateTime"
                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime"
                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDateTime"/>
      </jxb:globalBindings>
  </jaxws:bindings>
</jaxws:bindings>
 

 

然后在SOAP的Bindings选项添加a.xml



 

成功生成

注意:生成的转换类在目录org\w3\_2001\xmlschema\Adapter1.java手工复制到对应目录。

 

3、生成的目录中有Exception类,

删除生成的Exception类,将Exception_Exception类扩展java.lang.Exception

运行后报错:

根据提示,删除 ObjectFactory类中Exception相关的方法,成功运行

 

4、运行后报错:



 是生成的请求/返回类的命名空间冲突,根据提示,将GetIsCheckIn类头上增加命名空间代码

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "getIsCheckIn", propOrder = {
    "cancelCheckInRq"
},namespace="http://namespace.thats.not.the.same.as.the.generated")

 

 有的在Header里面添加了用户名密码验证

SatrImplService ss = new SatrImplService();//自动生成的类
        Satr port = ss.getSatrImplPort();//自动生成的类
        Client client= ClientProxy.getClient(port);
        client.getOutInterceptors().add(new ClientAuthInterceptor());
        System.out.println(port.sayHello("hello,world"));

 

参考

https://blog.csdn.net/showgood119/article/details/78856038

 

TCPMON监控

 java -classpath E:/axis.jar org.apache.axis.utils.tcpmon

  • 大小: 34 KB
  • 大小: 20.1 KB
  • 大小: 8.2 KB
  • 大小: 9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics