WCS7升级后webservice失效

问题

升级WCS7后,发现以前为WCS6写的webservice全部失效。
 
以如下URL为例:
 
系统日志为:
[2/9/12 11:36:04:045 CST] 000000a5 webcontainer E com.ibm.ws.webcontainer.WebContainer handleRequest SRVE0255E: A WebGroup/Virtual Host to handle /webapp/wcs/services/RemoteRegistrantServiceCaller has not been defined.
soupUI的返回测试结果为:
<H1>SRVE0255E: A WebGroup/Virtual Host to handle /webapp/wcs/services/RemoteRegistrantServiceCaller has not been defined.</H1>
<BR>
 <H3>SRVE0255E: A WebGroup/Virtual Host to handle cnsha05nb70810.apac.xxx.com:80 has not been defined.</H3>
<BR>
<I>IBM WebSphere Application Server</I>

分析

 
现象很明显,原因就是找不到webservice。
 
根据IBM文档,所有webservice应该都在WebServicesRouter 中。(映射的URI为“/webapp/wsc/”)
The WebServicesRouter Web module is mapped to the context root /webapp/wcs. The Web services runtime appends /services/ port type to get the complete URI. The port type is defined in the WSDL where the Web service is declared.
而WebServicesRouter模块也已正常载入,如下:
[2/10/12 10:16:47:951 CST] 00000009 webapp I com.ibm.ws.webcontainer.webapp.WebGroupImpl WebGroup SRVE0169I: Loading Web Module: WebServicesRouter. 
[2/10/12 10:17:00:815 CST] 00000009 WASSessionCor I SessionContextRegistry getSessionContext SESN0176I: Will create a new session context for application key WC_default_hostWebServicesRouter
[2/10/12 10:17:06:077 CST] 00000009 servlet I com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I: [WC] [/WebServicesRouter] [com_xxx_service_gcmc_remote_RemoteAddressServiceCaller]: Initialization successful.
[2/10/12 10:17:06:078 CST] 00000009 servlet I com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I: [WC] [/WebServicesRouter] [com_xxx_service_gcmc_remote_RemoteBulkServiceCaller]: Initialization successful.
[2/10/12 10:17:06:079 CST] 00000009 servlet I com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I: [WC] [/WebServicesRouter] [com_xxx_service_gcmc_remote_RemoteTaskServiceCaller]: Initialization successful.
[2/10/12 10:17:06:080 CST] 00000009 servlet I com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I: [WC] [/WebServicesRouter] [OpenWebServiceBinding]: Initialization successful.
[2/10/12 10:17:06:082 CST] 00000009 servlet I com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I: [WC] [/WebServicesRouter] [com_xxx_service_users_UserAccountService]: Initialization successful.
[2/10/12 10:17:06:083 CST] 00000009 servlet I com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I: [WC] [/WebServicesRouter] [com_xxx_service_address_xxxUpdateAddressService]: Initialization successful.
[2/10/12 10:17:06:084 CST] 00000009 servlet I com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I: [WC] [/WebServicesRouter] [com_xxx_service_gcmc_remote_RemoteSponsorServiceCaller]: Initialization successful.
[2/10/12 10:17:06:086 CST] 00000009 servlet I com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I: [WC] [/WebServicesRouter] [com_xxx_service_gcmc_remote_RemoteRegistrantServiceCaller]: Initialization successful.
[2/10/12 10:17:06:087 CST] 00000009 servlet I com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I: [WC] [/WebServicesRouter] [com_xxx_service_gcmc_remote_RemoteUserManagementServiceCaller]: Initialization successful.
[2/10/12 10:17:06:088 CST] 00000009 webcontainer I com.ibm.ws.wswebcontainer.VirtualHost addWebApplication SRVE0250I: Web Module WebServicesRouter has been bound to WC_default_host[*:80,*:443,*:8000,*:8002,*:8004,*:8006,*:8007].
这就让人对webservice加载失败的问题搞得有点摸不着头脑。
 

解决办法

 
经过一番捣鼓,发现此问题是WC/META-INF/application中,contex-root的配置错误造成的。
 
升级WCS7后,context-root变为“WebServicesRouter”。
 
<module id="Module_1320962769266"
    <web>
        <web-uri>WebServicesRouter.war</web-uri>
        <context-root>WebServicesRouter</context-root>
    </web>
</module>
将其改为“/webapp/wcs”即能解决问题。
<module id="Module_1320962769266"
    <web>
        <web-uri>WebServicesRouter.war</web-uri>
        <context-root>/webapp/wcs</context-root>
    </web>
</module>




转载于:https://www.cnblogs.com/heart-runner/archive/2012/02/10/2345558.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
wcs与plc通讯使用的是S7协议,S7协议是西门子公司开发的一种用于工业自动化领域的通讯协议。它定义了数据传输的格式、通信方式以及通信命令等内容,为wcs和plc之间的数据交互提供了标准化的规范。 具体来说,wcs作为一个控制系统,可以通过S7协议与plc进行通信以实现对plc的控制。wcs可以向plc发送各种命令和指令,例如读取和写入plc的数据、控制plc的输入和输出等。同时,wcs还可以从plc获取各种信息,包括plc的状态、运行数据、故障信息等。 在wcs与plc通信过程中,使用S7协议可以提供高效、稳定的数据传输。S7协议采用了面向连接的通信方式,数据的传输是经过可靠性保证的。此外,S7协议还支持多种数据类型的传输,如位、字节、整数、浮点数、字符串等,能够满足不同的数据传输需求。 为了实现wcs与plc的通信,需要在wcs系统和plc系统中分别设置相应的S7协议配置。wcs系统需要配置plc设备的IP地址和端口号,以便与plc建立通信连接。plc系统则需要设置S7协议的通信参数,如通信速率、数据位、奇偶校验等。 总结起来,wcs与plc通讯通过S7协议实现了高效、稳定的数据交互。通过S7协议,wcs可以向plc发送各种指令和获取plc的信息,从而实现对plc的控制和监控。S7协议的使用为wcs和plc之间的通信提供了标准化的规范,提高了系统的可靠性和兼容性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值