2009-11-18 6 views
1

Il s'agit d'un web enchevêtré qui est tissé, je suppose, mais ça ne devrait pas être si difficile. Laissez-moi voir si je peux peindre l'image:Services Web JBoss derrière IIS via HTTPs

J'ai écrit un service Web, en commençant par un WSDL, qui doit s'exécuter dans JBoss. Tout est bien et dandy quand je l'exécute sur ma machine locale et que je pointe mon "générateur de client" Netbeans (probablement juste en utilisant "wsimport" ou quoi que ce soit dans les coulisses) pour générer un client cela fonctionne comme prévu. Tout cela fonctionne en appuyant sur le port 8080 directement et l'élément <soap:address> ressemble à ceci:

<soap:address location="http://localhost:8080/MyoutfitWebService/funService"/> 

Maintenant, quand ce chiot se déploie, il va recevoir des demandes de IIS transmises par AJP, je pense, le port 8009 IIS gère la validation de notre certificat client et est supposé simplement transmettre la requête à mon service Web. Je n'arrive pas à comprendre ce qu'il faut utiliser dans l'élément <soap:address> de mon WSDL afin que je puisse donner l'URL WSDL à quelqu'un pour générer son propre client. Si j'utilise:

<soap:address location="https://real.server.com/MyoutfitWebService/funService"/> 

quand je le déployer et le point du WSDL, l'élément <soap:address> naufragé et ressemble à quelque chose comme:

<soap:address location="https://127.0.0.1:8443/MyoutfitWebService/funService"/> 

Quelqu'un peut-il me dire si je dois modifier quelque chose dans JBossWS .sar jboss-beans.xml ou quoi? J'utilise JBoss Web Services Native 3.0.4.

Merci d'avoir lu.

+0

Duh. Il s'avère que cette question est abordée raisonnablement bien dans cette FAQ: http://www.jboss.org/community/wiki/JBossWS-FAQ – Rintoul

Répondre

0

je ne sais pas comment gérer cela dans IIS mais je vais écrire quelques notes sur Apache

J'ai eu le même problème et il en utilisant le module contourné mod_ext dans apache

Votre configuration ressemblera à ceci

ExtFilterDefine fixservice mode=output cmd="/bin/sed s/127.0.0.1:8443/real.server.com:443/g" 

<Location "/MyoutfitWebService/services/funService"> 
     ProxyPass ajp://local.server.com:8009/MyoutfitWebService/funService 
     SetOutputFilter fixservice 
</Location> 
ProxyPass /MyoutfitWebService/funService ajp://local.server.com:8009/MyoutfitWebService/funService 

donc, votre adresse WSDL "correcte" sera

real.server.com/MyoutfitWebService/services/funService?wsdl 

qui aura du savon correct: Adresse,

real.server.com/MyoutfitWebService/funService 

(j'ai enlevé https que je peux mettre un seul lien ici).

Il peut y avoir un meilleur moyen, mais malheureusement, je n'ai pas le temps de faire une enquête approfondie. Cette solution fonctionne juste (je l'ai trouvé il ya quelques minutes et déjà testé)

Questions connexes