最近,我需要创建一个运行在weblogic服务器上的代理java web服务,它使用现有的wcf服务,然后公开它们的接口(这是在weblogic服务器上“托管”wcf服务的唯一方法,我认为这是可能的)。
这个服务的唯一作用就是充当代理(没有额外的功能)。
我需要能够在我的代理java web服务中公开与我现有的wcf服务完全相同的接口。原因是,我有一个现有的客户端应用程序在使用我的wcf服务--新的代理java web服务必须兼容,这样客户端就不需要进行任何更改。
实现这一目标的最佳途径是什么?有可能吗?我对java技术没有经验,我会非常感谢你的任何建议。
到目前为止,使用JDeveloper,我已经成功地创建了基于现有wcf服务的wsdl的web服务数据控制--能够通过web服务公开这样的数据服务吗?
发布于 2013-10-04 03:17:48
如果您正在寻找代理功能,则可以使用这个项目。
如果你在使用maven
<dependency>
<groupId>org.mitre.dsmiley.httpproxy</groupId>
<artifactId>smiley-http-proxy-servlet</artifactId>
<version>1.2</version>
</dependency>
如果您不使用maven,您可能只需从Github存储库中获取jar文件即可。
然后,在您的web.xml中,您可以指向实际服务所在的位置:
<servlet>
<servlet-name>sampleProxy</servlet-name>
<servlet-class>org.mitre.dsmiley.httpproxy.ProxyServlet</servlet-class>
<init-param>
<param-name>targetUri</param-name>
<param-value>http://localhost:9200/</param-value>
</init-param>
<init-param>
<param-name>log</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>sampleProxy</servlet-name>
<url-pattern>/sample/*</url-pattern>
</servlet-mapping>
(如果实际服务的WSDL中有一个端点定义为实际服务,只需保留WSDL的本地副本,更改端点,就可以完成了。)
这可能是由于它获得的时间效率,几乎不需要经验。
发布于 2013-10-04 00:27:39
你几乎回答了你的问题。“代理Web服务”。javaapp->Java代理wcf服务-> webservice。您可以在两端使用相同的wsdl结构,但端点地址中的IP只会改变。要在Java中开发代理WS服务,可以使用Axis或Jax。“快速启动Axis2”( Deepal Jayasinghe )是Axis2的好书。它解释了服务客户端和可操作客户端,重要的是,您通常不会在web引用中获得。至于JAX,您只需使用wsdl2java编译wsdl并为客户端代码生成存根。对于服务器代码编写(在这里您将反过来调用WCF),请参考http://www.mkyong.com/tutorials/jax-ws-tutorials/
。您可能必须将jaxb-api.jar和jaxws-api.jar文件复制到$JDK_HOME\jre\lib\endorsed目录。
https://stackoverflow.com/questions/19003867
复制相似问题