我正在从我的 java 应用程序中发布一个肥皂 ws api。到目前为止,我已经使用了 jdk 内置的 http 服务器,如下所示:
Endpoint.publish("http://www.example.com:80/soap/v1/foo", myWebService);
一切正常。
现在切换到灰熊。我的代码基于来自http://grizzly.java.net/nonav/docs/docbkx2.0/html/jaxws-samples.html的官方示例
因此类似于 httpServer.getServerConfiguration().addHttpHandler(httpHandler, "/soap/v1/foo");
wsdl 在预期的 url http://www.example.com:80/soap/v1/foo?wsdl下都可用,但对于 grizzly,生成的 wsdl 看起来不同。schmemaLocation 在所有地方都被缩短了,因为“/v1/foo”部分被删除了,它只指向/soap。我发布的所有服务(多个)都是这种情况。结果是无法调用方法。
(我会在 grizzly 邮件用户列表上交叉发布此内容,尽管流量不多。)