3

最近,我需要创建一个在 weblogic 服务器上运行的代理 java web 服务,该服务使用现有的 wcf 服务,然后公开它们的接口(这是我认为在 weblogic 服务器上“托管”wcf 服务的唯一方法是可能的)。

该服务的唯一作用只是充当代理(没有附加功能)。

我需要能够在我的代理 Java Web 服务中公开与现有 wcf 服务中完全相同的接口。这样做的原因是,我有一个现有的客户端应用程序正在使用我的 wcf 服务 - 新的代理 java web 服务必须兼容,因此客户端不需要进行任何更改。

实现这一目标的最佳方法是什么?可能吗?我在 Java 技术方面没有经验,非常感谢任何提示。

到目前为止,使用 JDeveloper,我已经成功地基于现有 wcf 服务的 wsdl 创建了 Web 服务数据控制 - 是否可以通过 Web 服务公开此类数据服务?

4

2 回答 2

0

你几乎已经回答了你的问题。“代理网络服务”。javaapp-->Java代理webservice-->wcf webservice。您可以在任一端使用相同的 wsdl 结构,只是端点地址中的 IP 只会更改。要在 Java 中开发代理 Web 服务,您可以使用 Axis 或 Jax-WS。 Deepal Jayasinghe的Quick Start Axis2是 Axis2的好书。它解释了服务客户端和操作客户端,重要的是您通常不会在网络参考中获得。至于 JAX-WS,您只需使用 wsdl2java 编译 wsdl 并为客户端代码生成存根。对于服务器代码编写(您将在其中调用 WCF),请参阅. 您可能必须将 jaxb-api.jar 和 jaxws-api.jar 文件复制到 $JDK_HOME\jre\lib\endorsed 目录。http://www.mkyong.com/tutorials/jax-ws-tutorials/

于 2013-10-04T08:27:39.297 回答
0

如果它是您正在寻找的代理功能,您可以使用这个项目

如果您使用的是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-04T11:17:48.523 回答