2013-05-27 3 views
2

У меня есть клиент для мыла с сгенерированными источниками с wsimport.
Я использую следующие настройки в моем pom.xmlJAX-WS wsimport использовать локальный wsdl файл xsd

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>jaxws-maven-plugin</artifactId> 
      <version>1.10</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>wsimport</goal> 
        </goals> 
        <configuration> 
         <wsdlFiles> 
          <wsdlFile>example.com_8080/services/test.wsdl</wsdlFile> 
         </wsdlFiles> 
         <wsdlLocation>http://example.com:8080/services/test?wsdl</wsdlLocation> 
         <staleFile>${project.build.directory}/jaxws/stale/test.stale</staleFile> 
        </configuration> 
        <id>wsimport-generate-test</id> 
        <phase>generate-sources</phase> 
       </execution> 
      </executions> 
      <dependencies> 
       <dependency> 
        <groupId>javax.xml</groupId> 
        <artifactId>webservices-api</artifactId> 
        <version>1.4</version> 
       </dependency> 
      </dependencies> 
      <configuration> 
       <sourceDestDir>${project.build.directory}/generated-sources/jaxws-wsimport</sourceDestDir> 
       <xnocompile>true</xnocompile> 
       <verbose>true</verbose> 
       <extension>true</extension> 
       <catalog>${basedir}/src/jax-ws-catalog.xml</catalog> 
      </configuration> 
     </plugin> 

И я ищу наилучшим образом HOWTO не делают запрос на WSDL/XSD с удаленного сервера (http://example.com:8080/services/test?wsdl) каждый раз. Итак, я хочу использовать локальный файл wsdl/xsd. Можно ли это сделать? Genra

+0

Просто просмотрите URL-адрес xsd в браузере и сохраните локальную копию – kolossus

ответ

0

Имел подобную проблему. wsimport должен сгенерировать файл .java с именем your_ws_nameService.java. В этом файле вы должны иметь раздел, который выглядит примерно так:

static { 
    URL url = null; 
    try { 
     URL baseUrl; 
     baseUrl = com.oracle.xmlns.orawsv.ORAWSVService.class.getResource("."); 
     url = new URL(baseUrl, "http://127.0.0.1:7101/test/test?WSDL"); 
    } catch (MalformedURLException e) { 
     logger.warning("Failed to create URL for the wsdl Location: 'http://127.0.0.1:7101/test/test?WSDL', retrying as a local file"); 
     logger.warning(e.getMessage()); 
    } 
    ORAWSVSERVICE_WSDL_LOCATION = url; 
} 

Изменить этот раздел, чтобы что-то вроде этого:

static { 
    URL url = null; 
    try { 
     URL baseUrl; 
     baseUrl = mypackage.my_ws_client.my_ws_clientService.class.getResource("my_ws.wsdl"); 
     url = new URL(baseUrl,""); 
    } catch (MalformedURLException e) { 
     logger.warning("Failed to create URL for the local wsdl file."); 
     logger.warning(e.getMessage()); 
    } 
    SENDINFOSERVICE_WSDL_LOCATION = url; 
} 

Это будет читать файл WSDL, который находится внутри вашего клиента. Конечно, вам нужно сначала его там, что, как подсказывает колосс, вы можете просто загрузить из браузера.

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

  • Нет связанных вопросов^_^