2017-10-21 20 views
0

J'ai un ancien protocole SOAP WS dans mon projet JAVA (1.7) qui pose actuellement quelques problèmes. Dans son WEB-INF/wsdl/*. Fichier wsdl il y a ce blocImport WSDL xsd de https à http: 443 lors du déploiement

<xsd:schema> 
    <xsd:import namespace="https://myUrl.com/" schemaLocation="myService_schema.xsd"/> 
</xsd:schema> 

juste après son déploiement, quand je télécharge son fichier WSDL via wget Je reçois le texte suivant

<xsd:schema xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="https://o2o-staging.beeweeb.com/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:import namespace="https://myUrl.com/" schemaLocation="http://myUrl.com:443/service-ws/myService?xsd=myService_schema.xsd"/> 
</xsd:schema> 

comme vous pouvez le voir l'adresse d'importation xsd https://myUrl.com devient http://myUrl.com:443, rendant ainsi le service inaccessible nginx se plaint d'une 400 erreur: la requête HTTP simple a été envoyé au port HTTPS

J'ai vraiment fait quelques recherches et a trouvé aucun problème assimilé à ce sujet. Quelqu'un peut-il m'expliquer s'il vous plaît ce qui se passe, et comment le réparer? l'url de l'espace de nommage https: //myUrl.com devrait vraiment rester comme ça, et est-il possible de le faire devenir http: //myUrl.com:443? Mon serveur est Jboss 7.1

Répondre

0

Pour qui cela pourrait être utile. Quand un webservice est déployé, jboss ré-traite tous les wsdl et xsd que vous avez dans votre WEB-INF/wsdl. Mon problème était que dans mon standalone.xml j'avais un connecteur http, alors que j'avais réellement besoin d'un https.

donc vous devez

1) changer votre connecteur à https (ou quoi que ce soit vous yousing pour votre web-app

<connector name="http" protocol="HTTP/1.1" scheme="https" socket-binding="http" 
secure="true" proxy-port="443"/> 

2) ajouter et le port de wsdl explicite dans votre autonome. xml

<subsystem xmlns="urn:jboss:domain:webservices:1.2"> 
<modify-wsdl-address>true</modify-wsdl-address> 
<wsdl-host>jbossws.undefined.host</wsdl-host> 
<wsdl-port>443</wsdl-port>