Веб-сервис прокси-сервера Java

Недавно я столкнулся с необходимостью создания веб-службы proxy java, работающей на сервере weblogic, которая потребляет существующие wcf-сервисы, а затем предоставляет свои интерфейсы (это единственный способ "хостинга" wcf-сервисов на сервере weblogic, который я себе представляю, возможно).

Единственная роль этой службы заключается в том, чтобы просто действовать как прокси (без дополнительной функциональности).

Мне нужно иметь возможность выставлять точно такие же интерфейсы в моем веб-сервисе proxy java, как и в моих существующих службах wcf. Причина этого заключается в том, что у меня есть существующее клиентское приложение, использующее мои службы wcf - новый веб-сервис proxy java должен быть совместимым, чтобы на стороне клиента не требовалось никаких изменений.

Каким будет наилучший подход для достижения этого? Является ли это возможным? Я не разбираюсь в технологиях Java и очень ценю любые советы.

До сих пор, используя JDeveloper, мне удалось создать управление данными веб-сервиса на основе существующего wcd-сервиса wcd - можно ли предоставить такую ​​службу данных через веб-сервис?

2 ответа

Если вы используете прокси-функциональность, вы можете использовать этот проект.

Если вы используете maven:

<dependency> <groupid>org.mitre.dsmiley.httpproxy</groupid> <artifactid>smiley-http-proxy-servlet</artifactid> <version>1.2</version> </dependency>

Если вы не используете maven, вы можете просто получить файл jar из репозитория Github.

Затем в вашем 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, измените конечные точки, и все будет готово.)

Это, вероятно, так же эффективно, как и получается, и требует, чтобы у него не было опыта.


Ты почти ответил на свой вопрос. "Прокси-сервер". javaapp → Java proxy webservice → wcf webservice. Вы можете использовать ту же структуру wsdl, что и конец, за исключением того, что IP-адрес в конечной точке будет только изменяться. Чтобы создать прокси-сервер в Java, вы можете использовать Axis или Jax-WS. Быстрый старт Axis2 от Deepal Jayasinghe - хорошая книга для Axis2. Он объясняет, что клиент службы и операционный клиент важно, что вы обычно не попадаете в веб-ссылки. Что касается JAX-WS, вы просто компилируете wsdl с помощью wsdl2java и генерируете заглушки для кода клиента. Для написания кода сервера (где вы вызовете вызов WCF) обратитесь к http://www.mkyong.com/tutorials/jax-ws-tutorials/. Возможно, вам придется скопировать в $JDK_HOME\jre\lib\одобренный каталог jaxb-api.jar и jaxws-api.jar.

licensed under cc by-sa 3.0 with attribution.