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);
}
}
サーブレットは次のようにマッピングされます。
<?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で実行しています)