Как назвать веб-сервис (описанным wsdl) от Java

F7 и Сдвиг + F7 для переключения между представлением разработчика/кода

Ctrl + Повреждение для остановки сборки.

Большой для тех, "о, я понял, что это не скомпилирует, и я не хочу тратить впустую свое время" моменты.

Высокий звук + Входит открывает resharper умный тег

ShortCuts

Ctrl Закладки + K Ctrl + K для размещения закладки

Ctrl + K Ctrl + N для движения в следующую закладку

Ctrl + K Ctrl + P для движения в предыдущую закладку

осуществлять рефакторинг ярлыков .

Каждый запускает с Ctrl + R .

Следуют, это с Ctrl + R для переименовывает. Ctrl + M для метода извлечения. Ctrl + E для инкапсулируют поле.

23
задан giannis christofakis 14 July 2017 в 16:40
поделиться

4 ответа

JDK 6 поставляется с jax-ws, всем, что вам нужно для разработки клиента для веб-службы.

Я не могу найти достаточно простых примеров для публикации, но начните с https://jax-ws.dev.java.net/

Изменить: вот простой пример - клиент для этой веб-службы: http://xmethods.com/ve2/ViewListing.po? key = 427565

C:\temp> md generated
C:\temp>"c:\Program Files\Java\jdk1.6.0_17"\bin\wsimport -keep -d generated http://www50.brinkster.com/vbfacileinpt/np.asmx?wsdl

Создайте PrimeClient.java, который будет выглядеть так:

import javax.xml.ws.WebServiceRef;
import com.microsoft.webservices.*; 
//the above namespace is from the generated code from the wsdl. 

public class PrimeClient {
 //Cant  get this to work.. @WebServiceRef(wsdlLocation="http://www50.brinkster.com/vbfacileinpt/np.asmx?wsdl")
  static PrimeNumbers service;

  public static void main(String[] args) {
    try {
    service = new PrimeNumbers();
      PrimeClient client = new PrimeClient();
      client.doTest(args);
    } catch(Exception e) {
      e.printStackTrace();
    }
  }

  public void doTest(String[] args) {
    try {
      System.out.println("Retrieving the port from the following service: " + service);
      PrimeNumbersSoap pm = service.getPrimeNumbersSoap();
      System.out.println("Invoking the getPrimeNumbersSoap operation ");
      System.out.println(pm.getPrimeNumbers(100));
    } catch(Exception e) {
      e.printStackTrace();
    }
  }
} 

Скомпилировать и запустить:

C:\temp>"c:\Program Files\Java\jdk1.6.0_17"\bin\javac -cp generated PrimeClient.java
C:\temp>"c:\Program Files\Java\jdk1.6.0_17"\bin\java -cp .;generated PrimeClient
Retrieving the port from the following service: com.microsoft.webservices.PrimeN
umbers@19b5393
Invoking the getPrimeNumbersSoap operation
1,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97
6
ответ дан 29 November 2019 в 03:11
поделиться

Самым простым, что я нашел до сих пор, является мастер Idea IntelliJ, который - с использованием библиотек Metro - генерирует очень небольшой фрагмент кода, который отлично работает с Java 6.

-2
ответ дан 29 November 2019 в 03:11
поделиться

Существуют плагины для IDE, которые генерируют необходимый код для использования веб-службы за вас.

После того, как плагин сгенерирует вам базовые методы, вы просто вызываете такую ​​веб-службу:

TransportServiceSoap service = new TransportServiceLocator().getTransportServiceSoap();
service.getCities();

Взгляните на http://urbas.tk/index.php/2009/02/20/eclipse- plug-in-as-a-web-service-client /

4
ответ дан 29 November 2019 в 03:11
поделиться

Есть три способа написать клиент веб-службы

  1. Динамический прокси
  2. Интерфейс динамического вызова (DII)
  3. Клиент приложения

Пример для клиента динамического прокси

import java.net.URL;

import javax.xml.rpc.Service;

import javax.xml.rpc.JAXRPCException;

import javax.xml.namespace.QName;

import javax.xml.rpc.ServiceFactory;

import dynamicproxy.HelloIF;

public class HelloClient {

    public static void main(String[] args) {
        try {

            String UrlString = "Your WSDL URL";  // 
            String nameSpaceUri = "urn:Foo";
            String serviceName = "MyHelloService";
            String portName = "HelloIFPort";

            System.out.println("UrlString = " + UrlString);
            URL helloWsdlUrl = new URL(UrlString);

            ServiceFactory serviceFactory =
                ServiceFactory.newInstance();

            Service helloService =
                serviceFactory.createService(helloWsdlUrl, 
                new QName(nameSpaceUri, serviceName));

            dynamicproxy.HelloIF myProxy = 
                (dynamicproxy.HelloIF) 
                helloService.getPort(
                new QName(nameSpaceUri, portName), 
                dynamicproxy.HelloIF.class); 

            System.out.println(myProxy.sayHello("Buzz"));

        } catch (Exception ex) {
            ex.printStackTrace();
        } 
    } 
}  

Надеюсь, это решит ваш вопрос.

1
ответ дан 29 November 2019 в 03:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: