簡體   English   中英

代理Java Web服務

[英]Proxy Java Web Service

最近我需要創建一個在weblogic服務器上運行的代理java web服務,它使用現有的wcf服務,然后公開它們的接口(這是在weblogic服務器上“托管”wcf服務的唯一方法,我想是可能的)。

此服務的唯一作用就是充當代理(無其他功能)。

我需要能夠在我的代理java Web服務中公開與現有wcf服務完全相同的接口。 原因是,我有一個現有的客戶端應用程序正在使用我的wcf服務 - 新的代理java Web服務必須兼容,因此客戶端不需要進行任何更改。

實現這一目標的最佳方法是什么? 可能嗎? 我沒有Java技術經驗,非常感謝任何提示。

到目前為止,使用JDeveloper我已經設法基於現有的wcf服務的wsdl創建Web服務數據控制 - 是否可以通過Web服務公開這樣的數據服務?

你幾乎回答了你的問題。 “代理Web服務”。 javaapp - > Java代理webservice - > wcf webservice。 您可以使用相同的wsdl結構,但端點地址中的IP只會更改。 要使用Java開發代理Web服務,您可以使用Axis或Jax-WS。 Deepal Jayasinghe的 快速入門Axis2Axis2好書 它重要地解釋了服務客戶端和操作客戶端,您通常不會進入Web引用。 至於JAX-WS,您只需使用wsdl2java編譯wsdl並為客戶端代碼生成存根。 有關服務器代碼編寫(您將調用WCF),請參閱http://www.mkyong.com/tutorials/jax-ws-tutorials/ 您可能必須復制到$ JDK_HOME \\ jre \\ lib \\ endorsed目錄jaxb-api.jar和jaxws-api.jar文件。

如果是您正在尋找的代理功能,您可以使用此項目

如果你正在使用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的本地副本,更改端點即可完成。)

這可能隨着時間的推移而變得非常有效,並且幾乎沒有任何經驗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM