2017-08-21 3 views
3

J'essaie de générer les classes Java à partir d'un fichier WSLD, qui utilise l'authentification de base.Générer des classes Java à partir d'une URL wsdl avec l'authentification de base

Bien qu'il existe de nombreux plug-ins là-bas, je dois utiliser le suivant: org.jvnet.jaxb2.maven2:maven-jaxb2-plugin

Avec wsimport ou wsdl2java j'ai trouvé le moyen de configurer les paramètres d'authentification de base. En utilisant le maven-jaxb2-plugin je n'avais pas de chance.

Ma configuration suivante:

 <plugin> 
      <groupId>org.jvnet.jaxb2.maven2</groupId> 
      <artifactId>maven-jaxb2-plugin</artifactId> 
      <version>0.13.2</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
        <configuration> 
         <packageName>com.mycompany</packageName> 
         <sourceType>wsdl</sourceType> 
         <specVersion>2.2</specVersion> 
         <schemas> 
          <schema> 
           <url>https://some-url?wsdl</url> 
          </schema> 
         </schemas> 

         <outputDirectory>target/generated-sources/xjb</outputDirectory> 
         <clearOutputDir>false</clearOutputDir> 
         <useActiveProxyAsHttpproxy>true</useActiveProxyAsHttpproxy> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

Comme prévu, la construction échoue avec le message suivant:

Caused by: java.io.IOException: Server returned HTTP response code: 401 for URL: https://some-url?wsdl 
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840) 
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441) 
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) 
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:647) 
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189) 
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812) 
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) 
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) 
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) 
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:2275) 
... 36 more 

Toutes les idées sur la configuration de l'authentification de base? Merci d'avance!

Remarque: https://username:[email protected]?wsdl, j'obtiens toujours une exception d'ES en raison de la demande non autorisée.

Répondre

1

wsimport, wsdl2java, maven-jaxb2 sont destinés à générer des classes proxy à partir du fichier descripteur. Étant donné que vous n'êtes pas autorisé (401), il se peut que ce soit en raison d'erreurs de connexion ou que vous n'ayez pas envoyé d'informations d'identification dans une requête.

Basique Auth, reportez-vous another stackoverflow question here

En outre, si vous pouvez poster votre code exact ici vous permet de configurer les Creds, il sera utile pour identifier la cause

+0

Salut Sunil, merci pour votre réponse! Je ne suis pas sûr si j'ai été compris, cependant. J'essaie de générer le code à partir d'un fichier wsdl. L'accès aux fichiers nécessaires nécessite une authentification de base. Cela devrait être défini en quelque sorte pendant l'exécution du plugin maven. –

0

Je n'ai trouvé aucun moyen de résoudre cela. J'ai fini par télécharger le .wsdl et les fichiers .xsd nécessaires et édité les (changé les URL d'importation) correctement.

Remarque: Pour les personnes qui ont le même problème, je recommande le plug-in jaxws:wsimport, qui prend en charge une option xauthFile pour la configuration de l'authentification de base.