Java JAX-WS端点到Domino

Java JAX-WS端点到Domino,java,jax-ws,xpages,lotus-domino,Java,Jax Ws,Xpages,Lotus Domino,当我将(Win64)服务器从8.5.3FP2升级到FP3时,我的Domino Web服务提供商破产了。我写了一些关于它的信息给他 我希望使用Java1.6附带的JAX WS,而不是使用基于Axis的遗留内容。我决定尝试一个非常简单的例子。我将代码复制粘贴到设计器Eclipse上的一个Java项目中,运行它,Web服务在本地机器上启动并运行:它响应并返回WSDL 接下来,我将代码作为代码/Java元素复制粘贴到服务器上的NSF中,并进行了更改: public static void main(St

当我将(Win64)服务器从8.5.3FP2升级到FP3时,我的Domino Web服务提供商破产了。我写了一些关于它的信息给他

我希望使用Java1.6附带的JAX WS,而不是使用基于Axis的遗留内容。我决定尝试一个非常简单的例子。我将代码复制粘贴到设计器Eclipse上的一个Java项目中,运行它,Web服务在本地机器上启动并运行:它响应并返回WSDL

接下来,我将代码作为代码/Java元素复制粘贴到服务器上的NSF中,并进行了更改:

public static void main(String[] args)

并在XPage中从SSJS调用此构造函数。我得到了这个错误:

线程“main”中出现异常 com.sun.xml.internal.ws.model.RuntimeModelerException:A @必须在没有 包裹类:HelloWorldImpl

这些课程是打包的。我也在Domino服务器JVM上使用命令行运行它,得到了相同的错误。在谷歌搜索之后,我添加了这个

@WebService(targetNamespace="http://mycompany.net/dev/ph")
到地狱和

在NSF中调用HelloWorldImpl并运行它。在那之后,web服务似乎开始运行了

接下来我启动了服务器,因为它很慢,之后我还没有看到WSDL!我已经多次运行代码,重新启动HTTP并尝试删除
@WebService
属性。我还尝试在服务器上再次使用命令行运行代码,但这总是会导致上面的@WebService.targetNamespace错误,我不知道为什么

现在,我总是将此信息发送到Domino控制台:

java.lang.NoClassDefFoundError:com.sun.xml.internal.ws.api.streaming.XMLStreamWriterFactory (初始化失败)at java.lang.J9VMInternals.initialize(J9VMInternals.java:140)在 com.sun.xml.internal.ws.server.SDDocumentImpl.writeTo(SDDocumentImpl.java:266) 在 com.sun.xml.internal.ws.transport.http.HttpAdapter.publishWSDL(HttpAdapter.java:538) 在 com.sun.xml.internal.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:230) 在 com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:107) 在 com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handle(WSHttpHandler.java:92) 位于com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77) sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:77)位于 com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80)位于 sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:569) 位于com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77) sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:541)位于 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919) 运行(Thread.java:738)

在服务器上访问此URL时:

http://localhost:9999/ws/hello?wsdl
我有点惊讶,我从Domino日志中得到了任何东西,因为我认为这使用了JVM http服务器。我不明白为什么它先工作,现在找不到这个类

如何将JAX WS端点发布到Domino服务器

编辑

我从这里下载了JAX-WS-jars:

并将它们放在\jvm\lib\ext文件夹中。WSDL URL再次开始工作!端点URL现在也有一些信息。我不知道为什么我必须这样做,因为JVM1.6中应该包含这些功能。接下来,我将尝试在端点代码中使用Domino对象

可以让JAX-WS使用dominohttp服务器吗

谢谢

  • 帕努

JAX-WS已经包含在Notes/Domino中。我怀疑在开发过程中,当您往返于服务器时,可能在服务器中引入了一些不稳定性

从8.5.3和9.0开始,我在XPages应用程序中创建了自定义提供者和使用者,其中包括SSJS和自定义Java访问


你现在的问题解决了吗?(如果是这样,请相应地结束这个问题:-)

JAX-WS是J2EE的一部分,而不是J2SE(请参阅:)好的,Domino附带J2SE?我的JAX-WS客户机在Domino服务器上运行良好,正如我所写的,我甚至在不添加任何jar的情况下启动并运行了一次端点。所有这些让我相信,至少大多数JAX WS都包含在Domino中。我们可以开始将这些建议放在答案中而不是注释中,这样这些问题就不会显示为未回答了吗?谢谢,听到这个消息太好了!我让我现有的提供者设计元素发挥作用,所以我还没有走这条路(在XPages论坛的链接后面解释)。但是我将尝试JAX-WS方法来创建下一个端点?如果是的话,获得更多的信息将是非常有趣的。@tony:你能提供一些样品吗?
@WebService(endpointInterface="com.mkyong.ws.HelloWorld", targetNamespace="http://mycompany.net/dev/ph", portName="HelloWorldPort", name="HelloWorld", serviceName="HelloWorldService")
http://localhost:9999/ws/hello?wsdl