2010-11-17 3 views
1

Я создал веб-проект на Java, используя Java-WS. Как я могу вызвать методы сервиса только через HTTP. Я не хочу генерировать (или хуже писать) любые веб-клиенты java и подобные вещи. Я хотел бы просто вызвать метод с помощью HTTP-запроса. И проанализировать результат (вручную) из ответа.Java-ws tomcat вызывает методы через http?

В веб-служб .NET я просто вызывают методы с:

http://serviceUrl/serviceName.asmx/operationName?parametars=... 

Как сделать то же самое в Java + котом?

Редактировать: Позвольте мне перефразировать мой вопрос. Так это то, что я сделал до сих пор:

  • создал веб-приложение (кстати, используя IDE NetBeans.)
  • Добавлены все необходимые исходные файлы
  • Добавлен веб-сервис классов с WebMethods определенной

Я развертываю приложение на tomcat, и оно развертывается нормально. Теперь, что мне нужно сделать, чтобы вызывать мои WebMethods через HTTP?

Typing:

http://localhost:8084/MyService/MyMethod 

не работает.

Извините, если это глупый вопрос, но я не являюсь Java-гуру, я работал в основном на .NET.

ответ

0

Я создаю веб-службу RESTful в NetBeans, нажав «Создавать SOAP-over-HTTP Wrapper» в контекстном меню службы. Он сгенерирован успешно, компилируется и разворачивается отлично. Но я до сих пор не могу понять, как сделать HTTP-вызов

+0

Nevermind. Получил работу. Необходимо отправить запрос на http: // localhost: 8084/resources/MyService/MyMethod – ZolaKt

0

Несколько возможностей:

  • использование new URL(url).openConnection().getInputStream()
  • использование апач http components
  • использовать клиент REST (если вы вызываете успокоительные услуги), как http://code.google.com/p/rest -client/"> это, или these. или весны RestTemplate
+0

Хммм, ралли не простое решение? Итак, если я прав, я должен сделать клиент на сервере, который будет действовать как прокси-сервер для реального клиента? – ZolaKt

+0

Что такое «настоящий клиент». Что проще, чем получить ответ в качестве входного потока (первый вариант)? – Bozho

+0

«Настоящий клиент» - это мобильное приложение C++. Можете ли вы дать мне более подробную информацию о первом решении? Как я понял, этот код входит в клиент. Но клиент не имеет ничего общего с java. В принципе, я просто хотел бы вызвать URL-адрес от клиента, получить XML в ответ и проанализировать его вручную. – ZolaKt

0

в этом случае, если вы хотите сделать веб-службы HTTP, который возвращает HTTP 200 Web Ответ, почему бы не посмотреть на приложение RESTFul?

JavaWorld Вкратце объясняет роль/использование REST. Аналогичные вопросы были заданы в учебниках REST в SO. Я надеюсь, это поможет вам.

+0

Между стандартным WS и REST нет большой разницы. Практически одно и то же, кроме WS, больше используется для вызова служб (что мне нужно) и REST для доступа к данным. В любом случае, я просто хочу, чтобы можно было вызвать форму метода HTTP-запроса. Спасибо за совет, но ваша ссылка ничего не говорит о том, как разработать REST в java + tomcat. – ZolaKt

+0

И дополнительно я бы предпочел стандартный WS. Хотя мне это не нужно для моего клиента, я хотел бы иметь возможность открывать, возможно, автоматически генерировать прокси-сервер на каком-то другом языке. В случае, когда я когда-либо решаю написать клиент для другой платформы – ZolaKt

+0

@ZolaKt, вам не нужно делать это для REST, так как клиент будет понимать данные как XML, JSON, обычный текст, массив байтов (в зависимости от выбора). Таким образом, вы знаете, что он подходит для каждого языка, в то время как WSDL, вам нужно будет включить язык для включения WS и плюс накладные расходы, так как все связано с XML для транспорта. –

0

Apache CXF имеет «обычную привязку к http», но мы рекомендуем, чтобы люди записывали службы JAX-RS. Они очень, очень, просты. Однако простая HTTP-привязка существует и поддерживает GET.

+0

Любой способ сделать привязку HTTP с обычным WS? – ZolaKt

+0

Вот что я вам говорю. Простой интерфейс CXF будет отображать операции GET на обычную веб-службу. – bmargulies