我已经运行了Tomcat5.5+ Axis2 1.5.5 +2 servlet。我的servlet之一也是运行axis2的自定义servlet。我有WEB和它下面的所有子目录(conf、lib、services和模块)。
现在,我的一个类是EntityWebService,它应该作为WS公开。所以我制作了这个services.xml文件:
<service name="EntityWebService" scope="application">
<description>
service web sur les entites
</description>
<messageReceivers>
<messageReceiver
mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
<messageReceiver
mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass">com.webservice.EntityWebService</parameter>
</service> 这个扔了这个:
<soapenv:Reason>
<soapenv:Text xml:lang="en-US">
The service cannot be found for the endpoint reference (EPR) /myServlet/services/EntityWebService/getEntityList
</soapenv:Text>
</soapenv:Reason>我也尝试过一个更简单的方法:
<service name="EntityWebService">
<description>Web Service</description>
<parameter name="ServiceClass" locked="xsd:false">com.webservice.EntityWebService
</parameter>
<operation name="getEntityList">
<messageReceiver
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
</operation>
<operation name="getEntityDescription">
<messageReceiver
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
</operation>
<operation name="searchInstanceEntity">
<messageReceiver
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
</operation>
<operation name="entityWriter">
<messageReceiver
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
</operation>
</service>这个也是一样的。
这两种xml都应该公开这些方法(至少我从所有web信息中都了解到了这一点):
字符串登录、字符串密码、字符串角色、String entityName、String属性、String criteria)
理想情况下,我希望直接从URL调用这些方法,例如:
我这样做了EntityWebService类,这样它就可以使用WS标准运行了:
package com.webservice;
[imports]
@WebService
public class EntityWebService extends AbstractWebService
{
@WebMethod
public OMElement getEntityList(OMElement e) throws RemoteException
{
[...]
}
@WebMethod
public OMElement getEntityDescription(OMElement omEntityParam) throws RemoteException
{
[...]
}
@WebMethod
public OMElement searchInstanceEntity(OMElement omParam) throws RemoteException
{
[...]
}
@WebMethod
public OMElement entityWriter(OMElement omParam) throws RemoteException
{
[...]
}
@Override
public String getServiceName()
{
return "EntityWebService";
}
}现在是我的问题。如何在启用URL编码参数的情况下公开4种方法?
我的配置不起作用,好像我漏掉了什么东西。我曾经设法使它们可调用,但没有参数输入。我从上一个1.5.5版本中检索到Axis2.xml,但没有更好的结果。我们有一个使用RPC消息传递和XML的旧配置,但我想摆脱AAR容器。我有一个朋友,他有我上面给你看的XMLInOut消息传递services.xml,它对他很有用。他刚刚创建了一个服务目录,如下所示: /myServlet/services/EntityWebService/META-INF/services.xml
帮帮我,我需要这个做我的工作。thx
发布于 2011-08-08 08:53:02
显然,升级Axis2配置并使用1.6轴版本解决了这个问题。不知道怎么做和为什么但是不管..。
https://stackoverflow.com/questions/6953635
复制相似问题