webservice 客户端 用axis框架 调用服务端的cxf 报错。

真的阿牛 发布于 2017/11/07 17:34
阅读 344
收藏 0

【Gopher China万字分享】华为云的Go语言云原生实战经验!>>>

这是我用cxf写的服务端代码
另一方客户端是axis
所有的命名空间,前面的涉及公司的敏感信息的被我用****代替了。实际发布用的是几个英文字母。

还有,用soapUI单独测试这些接口没有问题。

package *.*.*;

@WebService(targetNamespace="http://*****.tms.service/")
@SOAPBinding(style = Style.DOCUMENT)
public interface TmsService {
    
    /**
     * 获取系统信息Sign
     * @return
     */
    @WebMethod(action = "http://*****.tms.service/activeGetSysTms")
    public ResultSignResponse activeGetSysTms();
    /**
     * 获取设备信息Sign
     * @return
     */
    @WebMethod(action = "http://****.tms.service/activeGetNeTms")
    public ResultSignResponse activeGetNeTms(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    /**
     * 返回设备信息格式
     * @param id
     * @return
     */
    @WebMethod(action = "http://****.tms.service/passiveSetNeVendor")
    public DeviceInfoResultModel passiveSetNeVendor(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    /**
     * 返回系统信息格式
     * @return
     */
    @WebMethod(action = "http://****.tms.service/passiveSetSysVendor")
    public SysInfoResultModel passiveSetSysVendor();
    
    /**
     * 获取vlan信息Sign
     * @return
     */
    @WebMethod(action = "http://****.tms.service/activeGetVlanTms")
    public ResultSignResponse activeGetVlanTms(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    /**
     * 返回vlan信息
     * @return
     */
    @WebMethod(action = "http://****.tms.service/passiveSetVlanVendor")
    public VLANInfoResultModel passiveSetVlanVendor(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    
    /**
     * 获取配置文件信息的Sign
     * @return
     */
    @WebMethod(action = "http://****.tms.service/activeGetConfigFileTms")
    public ResultSignResponse activeGetConfigFileTms(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    
    /**
     * 返回配置文件信息
     * @param id
     * @return
     */
    @WebMethod(action = "http://****.tms.service/passiveSetConfigFileVendor")
    public ConfFileInfoResultModel passiveSetConfigFileVendor(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    
    /**
     * 获取指定告警信息Sign
     * @return
     */
    @WebMethod(action = "http://****.tms.service/activeGetAlarmByDeviceTms")
    public ResultSignResponse activeGetAlarmByDeviceTms(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    
    /**
     * 返回全部告警信息Sign
     * 无参
     */
    @WebMethod(action = "http://****.tms.service/activeGetAlarmTms")
    public ResultSignResponse activeGetAlarmTms();
    
    /**
     * 返回(指定)告警信息
     * 
     * @return
     */
    @WebMethod(action = "http://****.tms.service/passiveSetAlarmByDeviceVendor")
    public AlarmInfoResultModel passiveSetAlarmByDeviceVendor(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    
    /**
     * 获取链路信息Sign
     * @return
     */
    @WebMethod(action = "http://****.tms.service/activeGetLinkTms")
    public ResultSignResponse activeGetLinkTms();
    
    
    /**
     * 返回链路信息
     * 
     * @return
     */
    @WebMethod(action = "http://****.tms.service/passiveSetLinkVendor")
    public LinkInfoResultModel passiveSetLinkVendor();
    
    
    /**
     * 获取端口信息Sign
     * @return
     */
    @WebMethod(action = "http://****.tms.service/activeGetNePortTms")
    public ResultSignResponse activeGetNePortTms(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    
    /**
     * 设备端口信息
     * @return
     */
    @WebMethod(action = "http://****.tms.service/passiveSetNePortVendor")
    public DevPortInfoResultModel passiveSetNePortVendor(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    
    /**
     * 获取机框信息Sign
     * @return
     */
    @WebMethod(action = "http://****.tms.service/activeGetNeFrameTms")
    public ResultSignResponse activeGetNeFrameTms(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    
    /**
     * 获取机槽信息Sign
     * @return
     */
    @WebMethod(action = "http://****.tms.service/activeGetNeSlotTms")
    public ResultSignResponse activeGetNeSlotTms(@WebParam(name = "frameobjlist",targetNamespace="http://****.tms.service/") String frameobjlist);
    
    
    /**
     * 获取板卡信息Sign
     * @return
     */
    @WebMethod(action = "http://****.tms.service/activeGetNeCardTms")
    public ResultSignResponse activeGetNeCardTms(@WebParam(name = "slotobjlist",targetNamespace="http://****.tms.service/") String slotobjlist);
    
    
    /**
     * 返回机框信息
     */
    @WebMethod(action = "http://****.tms.service/passiveSetNeFrameVendor")
    public NetAssetFrameResultModel passiveSetNeFrameVendor(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    
    /**
     * 返回机槽信息
     */
    @WebMethod(action = "http://****.tms.service/passiveSetNeSlotVendor")
    public NetAssetSlotResultModel passiveSetNeSlotVendor(@WebParam(name = "frameobjlist",targetNamespace="http://****.tms.service/") String frameobjlist);
    
    
    /**
     * 返回板卡信息
     */
    @WebMethod(action = "http://****.tms.service/passiveSetNeCardVendor")
    public NetAssetCardResultModel passiveSetNeCardVendor(@WebParam(name = "slotobjlist",targetNamespace="http://****.tms.service/") String slotobjlist);
    
    /**
     * 返回物理口与逻辑关系
     */
    @WebMethod(action = "http://****.tms.service/passiveSetNePortRelationVendor")
    public InterfaceInfoResultModel passiveSetNePortRelationVendor(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    /**
     * 物理口与逻辑关系信息Sign
     * @return
     */
    @WebMethod(action = "http://****.tms.service/activeGetNePortRelationTms")
    public ResultSignResponse activeGetNePortRelationTms(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    /**
     * vpn信息 Sign
     * @param neobjlist
     * @return
     */
    @WebMethod(action = "http://****.tms.service/activeGetVpnTms")
    public ResultSignResponse activeGetVpnTms(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    /**
     * vpn(VRF)信息
     * @param neobjlist
     * @return
     */
    @WebMethod(action = "http://****.tms.service/passiveSetVpnVendor")
    public VRFInfoResultModel passiveSetVpnVendor(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    
    /**
     * 返回全部流量信息
     * 以FTP方式提供
     * 
     */
    @WebMethod(action = "http://****.tms.service/activeGetFlowTms")
    public ResultSignResponse activeGetFlowTms();
    
    
    /**
     * 返回设备性能信息
     * 以FTP方式提供
     * 
     */
    @WebMethod(action = "http://****.tms.service/activeGetNePerfTms")
    public ResultSignResponse activeGetNePerfTms(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
    
    /**
     * 返回端口性能
     * 以FTP方式提供
     * @param neobjlist
     * @return
     */
    @WebMethod(action = "http://****.tms.service/activeGetPortPerfTms")
    public ResultSignResponse activeGetPortPerfTms(@WebParam(name = "neobjlist",targetNamespace="http://****.tms.service/") String neobjlist);
    
}



另一方的客户端调用我的接口,一个一个的调的话好像没有问题,但是他们那边多线程同时调用,可能是我的两个及以上的接口被同时调用,就报了错。
以下是报错:

2017-11-02 22:36:27,581 [org.apache.cxf.phase.PhaseInterceptorChain]-[WARN] Interceptor for {http://****.tms.service/}TmsServiceService#{http://****.tms.service/}activeGetAlarmTms has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unexpected wrapper element {http://****.tms.service/}activeGetSysTms found.   Expected {http://****.tms.service/}activeGetAlarmTms.
    at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:99)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
    at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:238)
    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:218)
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:198)
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
    at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:158)
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:243)
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:163)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:219)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)
2017-11-02 22:36:27,644 [org.apache.cxf.services.TmsServiceService.TmsServicePort.TmsService]-[INFO] Outbound Message

 

加载中
返回顶部
顶部