2017-01-17 6 views
0

Sollte wie eine dumme Frage aussehen, aber ich habe das folgende Problem. Es gibt einen externen Webdienst, WSDL ist verfügbar. Meine Aufgabe besteht darin, die Methoden aus einer anderen Unternehmensanwendung (unter WebSphere 8.5) aufzurufen. Mit Rational Application Developer habe ich Webdienstclientklassen im Projekt der Anwendung generiert und dabei das Paket der Anwendung angegeben, das vom Webservice abweicht. Web-Service-Methode gibt ein POJO, die ein Wrapper für ArrayList.Then ist ich einen Anruf auf dem Web-Service zu machen, erzeugt calsses auf folgende Weise mit:Web-Service (JAX-WS) Client in verschiedenen Paket

package com.mycompany.services.external; 

import com.mycompany.services.external.client.SomeCommonService; 
import com.mycompany.services.external.client.SomeCommonServiceService; 
import com.mycompany.services.external.client.IdsList; 


    final QName COMMONSERVICE_QNAME = new QName("http://webService.othercompany.com/", "SomeCommonServiceService"); 

    String strUrl = "http://...."; 
    String query = "/universal [@Barcode=\"000111\"]"; 

    URL serviceUrl = new URL(strUrl); 
    SomeCommonServiceService service=new SomeCommonServiceService(serviceUrl, COMMONSERVICE_QNAME); 
    SomeCommonService port = service.getSomeCommonServicePort(); 
    IdsList itemsIds = port.getItemsIdsByQuery(query); 

Und als Ergebnis der letzten Zeile des Codes, wo die Methode aufgerufen wird, verursacht einen Fehler:

[1/17/17 21:55:39:758 MSK] 00000497 SystemErr R CIWEB Error: [admin(unknown) @ 10.253.32.24] com.ibm.ecm.util.PluginUtil.invokeService() javax.xml.ws.WebServiceException: javax.xml.bind.JAXBException: com.mycompany.services.external.client.IdsList is not known to this context

einen Blick in die erzeugte package-info.java folgende Abbildung Taking zu sehen ist:

@javax.xml.bind.annotation.XmlSchema(namespace = "http://webService.othercompany.com/") 
package com.mycompany.services.external.client; 

Wenn ich ursprüngliche Option verlassen (nicht changin g Standardpaket) beim Generieren des Clients - das gleiche Problem und der gleiche Fehler. Aber in diesem Fall funktioniert alles, wenn ich den generierten Client in eine separate JAR-Datei packe und sie als eine gemeinsame Bibliothek für meine Anwendung auf dem WebSphere-Server verwende. Aber das ist aus einigen Gründen nicht akzeptabel.

Könnte jemand so angenehm sein, mich zu erlösen, das Problem zu lösen?

Antwort

0

verwendete ich mit Web Services Base auf WSDL arbeiten:

Beispiel: http://www.dgii.gov.do/wsMovilDGII/WSMovilDGII.asmx?wsdl

Natürlich Maven, verwende ich diese pluging

<plugins> 
      <plugin> 
       <groupId>org.apache.cxf</groupId> 
       <artifactId>cxf-codegen-plugin</artifactId> 
       <version>3.1.5</version> 
       <executions> 
        <execution> 
         <id>generate-sources</id> 
         <phase>generate-sources</phase> 
         <configuration> 
          <sourceRoot>${basedir}/src/main/java/</sourceRoot> 
          <wsdlOptions> 
           <wsdlOption> 
            <wsdl>http://www.dgii.gov.do/wsMovilDGII/WSMovilDGII.asmx?wsdl</wsdl> 
            <packagenames> 
             <packagename>com.hectorvent.consultadgii</packagename> 
            </packagenames> 
           </wsdlOption> 
          </wsdlOptions> 
         </configuration> 
         <goals> 
          <goal>wsdl2java</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
Verwandte Themen