Web services 使用Spring和Axis运行webservice:无法识别的方法
我有一个基于Spring的web应用程序,需要使用Axis公开一个web服务。我照做了,但服务仍然不能正常工作要继续,我有一个端点类,如下所示:Web services 使用Spring和Axis运行webservice:无法识别的方法,web-services,spring,tomcat,soap,axis,Web Services,Spring,Tomcat,Soap,Axis,我有一个基于Spring的web应用程序,需要使用Axis公开一个web服务。我照做了,但服务仍然不能正常工作要继续,我有一个端点类,如下所示: package service; import org.springframework.remoting.jaxrpc.ServletEndpointSupport; public class SpringWSEndPoint extends ServletEndpointSupport implements ISpringWS { private
package service;
import org.springframework.remoting.jaxrpc.ServletEndpointSupport;
public class SpringWSEndPoint extends ServletEndpointSupport implements ISpringWS {
private ISpringWS springWS;
protected void onInit() {
this.springWS = (ISpringWS) getWebApplicationContext().getBean("springWS");
}
public String sayHello(String message) {
return springWS.sayHello(message);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>WSSpring</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>axis</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>axis</servlet-name>
<url-pattern>/axis/*</url-pattern>
</servlet-mapping>
</web-app>
servlet映射如下:
package service;
import org.springframework.remoting.jaxrpc.ServletEndpointSupport;
public class SpringWSEndPoint extends ServletEndpointSupport implements ISpringWS {
private ISpringWS springWS;
protected void onInit() {
this.springWS = (ISpringWS) getWebApplicationContext().getBean("springWS");
}
public String sayHello(String message) {
return springWS.sayHello(message);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>WSSpring</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>axis</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>axis</servlet-name>
<url-pattern>/axis/*</url-pattern>
</servlet-mapping>
</web-app>
WSSpring
index.jsp
org.springframework.web.context.ContextLoaderListener
轴
org.apache.axis.transport.http.AxisServlet
5.
轴
/轴心/*
因此,一旦我导航http://localhost:8080/myProject/axis/SpringWSEndPoint?wsdl
正如预期的那样,它提供了一个(似乎正确)自动生成的wsdl
但是如果我转到http://localhost:8080/myProject/axis/SpringWSEndPoint/sayHello
它不认为它是一种服务方法(“此URL没有可用的服务”)
我想知道我必须以某种方式在任何.war或.aar文件中手动编译webservice
谢谢
(我正在tomcat中运行)该服务将接受对
http://localhost:8080/myProject/axis/SpringWSEndPoint
,但不获取对http://localhost:8080/myProject/axis/SpringWSEndPoint/sayHello
。Axis1.x不支持此请求样式。但是,它支持这样的内容(出于测试目的):http://localhost:8080/myProject/axis/SpringWSEndPoint?method=sayHello&message=test
您确定该指南仍然适用于2012年的学习吗ServletEndpointSupport
已弃用。