我有Tomcat 5.5 + Axis2 1.5.5 + 2 servlets运行。 我的一个servlet是一个运行axis2的自定义servlet。 我有WEB-INF及其下的所有子目录(conf,lib,services和modules)。JDK5 + Axis2:如何使用URL编码参数创建WS?
现在,我的一个类是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的应该(至少这是我从所有网络资料了解)揭露这些方法:
- 公的OMElement getEntityDescription(字符串的entityName)
- 公的OMElement getEntityList()
- public OMElement searchInstanceEntity(String login,String password, String role,String entityName,String property,String criteria)
- public OMElement entityWriter(String login,String password,String 作用,字符串的entityName,字符串操作类型,String属性)
理想我想直接从我的网址调用这些方法,如:
我已经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消息服务.xml,我向你展示了它,它适用于他。他只是在这样的服务下创建一个目录: /myServlet/services/EntityWebService/META-INF/services.xml
请帮助我,我需要这个工作。 thx