我有一个基于 Spring 的 Web 应用程序,我需要使用 Axis 公开一个 Web 服务。我遵循了本指南,但服务仍然无法正常工作。要恢复,我有一个这样的 EndPoint 类:
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);
}
}
和 servlet 映射如下:
<?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>
因此,一旦我浏览http://localhost:8080/myProject/axis/SpringWSEndPoint?wsdl
它,它就会出现(似乎正确)自动生成的 wsdl,正如预期的那样。
但是,如果我去http://localhost:8080/myProject/axis/SpringWSEndPoint/sayHello
它不会将其识别为服务方法(“此 URL 上没有可用的服务”)
我想知道我必须以某种方式手动编译任何 .war 或 .aar 文件中的 web 服务......
谢谢
(我在tomcat中运行它)