我已将JBoss 4.0.5 / Java 5中的Java EE Web应用程序移植到Tomcat 6.0.33 / Java 6。
Web应用程序公开了一些Web服务。它们在JBoss中作为JAX-RPC Web服务实现,我使用CXF 2.6作为实现运行时将它们改编为JAX-WS Web服务。现在我被要求在新环境(Tomcat 6.0.33 / Java 6)中提供JAX-RPC Web服务以与现有客户端兼容。当然,通过两个不同的端点URL可以获得相同Web服务的两个版本。
JBoss 4.0.5 / Java 5中的JAX-RPC Web服务是使用Spring实现的(实现类扩展了org.springframework.remoting.jaxrpc.ServletEndpointSupport,在spring-remoting-2.0.8.jar中找到)但是我无法猜测JBoss提供的JAX-RPC的底层实现框架是什么。我只能看到配置文件是webservices.xml和jaxrpc-mapping.xml。
我试图在Tomcat中“复制”Spring配置,但是当我尝试检索WSDL时,我收到错误javax.servlet.ServletException: Class pack.age.MyEndPoint is not a Servlet
。实际上,该类(JAX-RPC端点实现类)不是servlet,但在JBoss 4.0.5 / Java 5下,它在web.xml
中作为servlet声明并且可以工作。