0

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で実行しています)

4

1 に答える 1