2013-08-19 3 views
7

Я пытаюсь взаимодействовать с некоторыми веб-службами SOAP, которые имеют базовую аутентификацию, и у меня есть url, имя пользователя и пароль. Теперь я хочу использовать эту веб-службу в своем java-коде, поэтому мне нужно создать файл jar для него.создание клиентской банки из SOAP wsdl

Я видел приведенные ниже URL-адреса, но не уверен, правильно ли я следил за ним. http://axis.apache.org/axis2/java/core/docs/userguide-creatingclients.html#choosingclient http://javasourcecodeetc.blogspot.com/2011/07/convert-wsdl-to-java-for-calling-soap.html

Я скачал ось 2-1.6.2 из http://axis.apache.org/axis2/java/core/download.cgi (только бинарный дистрибутив)

У меня есть клиент окурок, который был дан ... Я вижу, как люди говорят, чтобы использовать его сборку. xml, но я не мог найти build.xml в любом месте .... Пожалуйста, скажите мне, что мне нужно установить, чтобы настроить ось апаша и муравей? Что здесь делает муравей?

ответ

7

Axis2 поддерживает несколько способов поддержки клиентов веб-сервисов. Наиболее распространенный подход документирован here и участвует в генерации Java-кода, который анализирует сообщение SOAP, описанное в файле WSDL.

В следующем ответе описывается несколько способов вызова веб-службы. Последняя часть описывает заводной скрипт, использующий классы, порожденные Axis2 и скомпилированные с помощью ANT:

Более подробно

Программа wsdl2java (в комплекте с Axis2) будет генерировать ANT проект на основе указанного файла WSDL:

$AXIS2_HOME/bin/wsdl2java.sh -d adb -s -o mydir -uri http://www.xmlme.com/WSShakespeare.asmx?WSDL 

Будет создана следующая информация:

└── mydir 
    ├── build.xml 
    └── src 
     └── com 
      └── xmlme 
       └── webservices 
        └── ShakespeareStub.java 

Если проверить сгенерированный код Java вы откроете для себя Java-классы, соответствующие типы схем XML, определенные в файле WSDL, что делает его проще для сериализации и десериализации SOAP-сообщения.

Файл «build.xml» содержит логику, которая будет сгенерировать сгенерированный код Java.

cd mydir 
ant 

Когда сборка запускается он по умолчанию будет создавать файл фляги следующим образом:

└── mydir 
    ├── build 
    │   ├── classes 
    │   │   └── .. 
    │   │    .. 
    │   └── lib 
    │    └── Shakespeare-test-client.jar 
    ├── build.xml 
    └── src 
     └── com 
      └── xmlme 
       └── webservices 
        └── ShakespeareStub.java 

Эта баночка файл теперь может быть включен Java (или см мой пример заводной сценария в other answer), что хочет получить доступ к веб-сервису.

9

Ответ от Марка работает, но я скорее парень Maven и хочу, в конечном счете, ослабить выходную банку.

Вот как это сделать с Maven.

  1. Загрузить WSDL в каталог (например, mydir/MyWsdl.wsdl).
  2. Создайте файл pom.xml (как показано ниже).
  3. Пробег mvn package.

Вот что вы в конечном итоге с

└── mydir 
    ├── MyWsdl.wsdl 
    ├── pom.xml 
    └── target (add this dir to .gitignore) 
     ├── generated-sources 
     ├── mywsdl-0.1.0-SNAPSHOT.jar 
     ├── mywsdl-0.1.0-SNAPSHOT-sources.jar 
     └── mywsdl-0.1.0-SNAPSHOT-javadoc.jar 

и источник файла pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.example</groupId> 
    <artifactId>mywsdl</artifactId> 
    <version>0.1.0-SNAPSHOT</version> 
    <name>My WSDL client</name> 
    <build> 
    <plugins> 
     <!-- Generates JAVA source files from the WSDL --> 
     <plugin> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
     <version>1.6.2</version> 
     <executions> 
      <execution> 
      <goals> 
       <goal>wsdl2code</goal> 
      </goals> 
      <configuration> 
       <packageName>com.example</packageName> 
       <wsdlFile>MyWsdl.wsdl</wsdlFile> 
       <!-- TODO: Update this file with new WSDL versions --> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-source-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>attach-sources</id> 
      <goals> 
       <goal>jar</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-javadoc-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>attach-javadocs</id> 
      <goals> 
       <goal>jar</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    <dependencies> 
    <dependency> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2</artifactId> 
     <version>1.6.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2-adb</artifactId> 
     <version>1.6.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ws.commons.axiom</groupId> 
     <artifactId>axiom-api</artifactId> 
     <version>1.2.14</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ws.commons.axiom</groupId> 
     <artifactId>axiom-impl</artifactId> 
     <version>1.2.14</version> 
    </dependency> 
    </dependencies> 
    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
</project> 
+0

я не могу изменить, потому что это было бы менее 6-ти символов, но есть отсутствует в первой строке pom.xml: «x» mlns: xsi = «http: //www.w3 ..... –

Смежные вопросы