我目前正在测试Apache CXF(2.7.11)。目的是构建Web服务客户端。我大致都在关注Martin Vereecken的博文(http://www.bizzybee.be/2013/01/23/creating-a-java-webservice-client-in-domino-using-apache-cxf/#more-451)。我有一个WSDL文件,我使用wsdl2java
工具创建了示例代码。
我的第一个想法是将wsdl文件存储在NSF中(例如 WebContent \ WEB-INF \ resources \ wsdl )。但是,生成的代码似乎没有找到WSDL文件。代码看起来像这样(类名称Session来自WSDL):
Session.java:
URL url = Session.class.getResource("WEB-INF/wsdl/twinfield/session.wsdl");
if (url == null) {
url = Session.class.getClassLoader().getResource("WEB-INF/wsdl/twinfield/session.wsdl");
}
我尝试了WEB-INF和/ WEB-INF,但似乎都没有用。
如果我将WSDL文件放在网上(例如 domino / html / wsdl 文件夹),则上面的url可以正常工作,但代码会中断(似乎它使用java.io.File
尝试加载WSDL)。
本地引用(例如 C:\ temp \ wsdl )可以工作,但听起来并不像一个强大的选项。
最终的java代码将位于 WebContent \ WEB-INF \ src 中,而不是 Code \ Java 中。
那么,什么是最佳实践"用于在Domino环境中存储和引用WSDL文件?
我选择了@ stwissel的提案并注意到wsdl2java
工具实际上可以为您创建整个jar。只需指定选项-clientJar,生成的JAR文件将包含所有类文件+ wsdl文件。
答案 0 :(得分:1)
从WSDL生成Java类时,应将它们打包到JAR文件中。将WSDL放入Jar文件中,这样就不会丢失。 This blog article并且评论解释了它。
当您将该jar保留在NSF中时,潜在的问题可能是访问权限(Java执行权限)。
博客条目包含示例代码,请查看它!