我试图在部署到Glassfish(最好也适用于TomEE)的Web服务中获得对URL端点的控制。
我有一个类:
@Stateless
@WebService(
targetNamespace = "http://foo.net/doc/2012-08-01",
name = "FooService",
portName = "FooPort",
serviceName = "FooService")
public class FooSoapService extends SoapBase {
...
}
还有一个web.xml文件:
<servlet>
<description>SOAP Endpoint for Foo operations.</description>
<servlet-name>Foo</servlet-name>
<servlet-class>com.foo.FooSoapService</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FooPack</servlet-name>
<url-pattern>/soap/FooPack</url-pattern>
</servlet-mapping>
如果我在Glassfish中访问/context-root/soap/FooPack?wsdl,我会得到以下结果:
java.lang.ClassCastException: com.foo.FooSoapService cannot be cast to javax.servlet.Servlet
除了一些jax-rs内容,web.xml中几乎没有其他东西。
有什么想法吗?
jaxws-rt-x.x.x.jar
添加到您的类路径中即可。从您提供的链接中,我假设您正在使用 CXF,那么为什么不直接使用 CXF 方法来公开 Web 服务呢? - Paulius Matulionis