IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JOnAS Java Discussion :

Plusieurs Web Service, chacun sur 1 port différent


Sujet :

JOnAS Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Plusieurs Web Service, chacun sur 1 port différent
    Bonjour,


    J'utilise JOnAS 4.92.
    J'ai construit plusieurs Web Services avec CXF 2.91.

    Il m'est demandé de déployer chaque webservice sur un port différent.
    (Le premier sur 7010, le deuxième sur 7020, le troisième sur 7030, etc...).

    J'ai essayé de changer le WSDL de chacun d'entre eux sans succès.

    J'ai essayé de placer dans le WAR un fichier /WebContent/WEB-INF/jonas-web.xml avec des adresses de type : <host>:<port>, sans succès.

    Comme je suis à court d'idée je vous demande de l'aide.

    Merci d'avance.


    Shadowi

  2. #2
    Membre VIP Avatar de kalysto
    Profil pro
    Développeur
    Inscrit en
    Mars 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mars 2003
    Messages : 442
    Points : 568
    Points
    568
    Par défaut
    Salut

    Tout dépend de la facon dont tu utilises CXF.

    Si tu a choisis d'utiliser la CXFServlet, la tu te bases sur une webapp, et dans ce cas la tu es bloqué pour choisir tes ports car tu depends directement de ton installation de webapp (dans quel Host tu as deploye ta webapp et quels sont les connecteurs HTTP associés).

    Si tu passes plutot par Endpoint.publish(implementor), la c'est plus libre, car CXF va demarrer lui meme un nouveau conteneur web (Jetty) qui va ecouter sur le port que tu as definis dans ton URL. Tu dois juste t'assurer que tu n'utilises pas un port deja pris par le systeme (JOnAS compris).

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Bonjour

    Je te remercie pour ta réponse.

    Ce sont les premiers Web Services que je développe, je ne maîtrise pas grand chose. J'ai utilisé wsdl2java pour générer mon code que j'ai ensuite modifié.
    Les Web Services marchent sur le port par défaut (9000 pour jonas).

    Je pensais qu'en changeant les paramètres dans le wsdl j'allais changer l'endroit où JOnAS rendrait disponible les web services, mais non...

    Ensuite j'ai essayé d'ajouter un fichier "jonas-web.xml" mais j'ai juste réussi à changer le "context" pas le port directement.

    Bref je suis dans une impasse. Je vais me renseigner sur les notions que tu m'as présentées et voir si je trouve la solution.


    Shadowi

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par kalysto Voir le message
    Si tu a choisis d'utiliser la CXFServlet, la tu te bases sur une webapp, et dans ce cas la tu es bloqué pour choisir tes ports car tu depends directement de ton installation de webapp (dans quel Host tu as deploye ta webapp et quels sont les connecteurs HTTP associés).
    Re Salut


    Bon je viens de revoir ce que j'ai développé et j'ai pris la première solution : je passe par la CXFServlet, et effectivement j'utilise le "host" appelé "localhost". Je peux le changer via un paramètre du fichier jonas-web.xml.

    La question qu'il me reste à résoudre est donc comment relié un "host" à un port spécifique via le fichier de config server.xml... Bref j'ai encore pas mal de boulot

    Merci


    Shadowi

  5. #5
    Membre VIP Avatar de kalysto
    Profil pro
    Développeur
    Inscrit en
    Mars 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mars 2003
    Messages : 442
    Points : 568
    Points
    568
    Par défaut
    En fait, si tu regardes ton fichier server.xml de tomcat, tu remarqueras des elements nommés Connector; ce sont eux qui definissent les numero de port HTTP qui vont pouvoir servir ton Host.
    Si tu changes ces ports la, tu changes les ports d'acces HTTP à ton service web.

    Mais par contre, ca les change pour tout le host, tu ne pourras pas avoir des WS deployés dans le meme war etre accessibles par des ports differents.

    Donc, soit tu ne passe plus par CXFServlet, soit tu peux configurer ton tomcat pour avoir plusieurs host, auxquels sont attachés differents connecteurs HTTP, ensuite, dans ton jonas-web.xml, tu peux choisir sur quel host (et donc quel port HTTP) deployer ta webapp. Ca implique aussi d'avoir plusieurs webapp si tu veux avoir des ports differents pour chaqun de tes WS.

    Au fait, c quoi le besoin particulier pour vouloir avoir des numeros de ports differents ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Salut

    Encore merci pour ta réponse

    C'est exactement ce que j'ai fais et ça marche

    Voilà le "service" que j'ai rajouté dans le fichier sever.xml.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
      <!--  
      SERVICE POUR LE WEB SERVICE 1
      ECOUTE SUR LE PORT 8010
    -->
    
      <Service
          name="Service1
        <Connector
            port="8010"
            minSpareThreads="25"
            connectionTimeout="20000"
            maxSpareThreads="75"
            maxThreads="150">
        </Connector>
        <Engine
            defaultHost="host_1"
            name="Engine1">
          <Host
              appBase="webapps"
              autoDeploy="false"
              deployOnStartup="false"
              deployXML="false"
              liveDeploy="false"
              name="host_1"
              unpackWARs="false">
          </Host>
        </Engine>
      </Service>
    
    
      <!--  
      SERVICE POUR LE WEB SERVICE 2
      ECOUTE SUR LE PORT 8020
    -->
      <Service
          name="Service2
        <Connector
            port="8020"
            minSpareThreads="25"
            connectionTimeout="20000"
            maxSpareThreads="75"
            maxThreads="150">
        </Connector>
        <Engine
            defaultHost="host_2"
            name="Engine2">
          <Host
              appBase="webapps"
              autoDeploy="false"
              deployOnStartup="false"
              deployXML="false"
              liveDeploy="false"
              name="host_2"
              unpackWARs="false">
          </Host>
        </Engine>
      </Service>
    Attention le nom des "hosts" doit être en minuscule !!!


    Chaque Web Service est déployé dans un WAR différent. Chacun d'entre eu contient un fichier jonas-web.xml dans le WebContent/WEB-INF/ avec le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <jonas-web-app xmlns="http://www.objectweb.org/jonas/ns"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.objectweb.org/jonas/ns
                   http://www.objectweb.org/jonas/ns/jonas-web-app_4_0.xsd" >
     
      <!-- the virtual host on which deploy the web application -->
      <host>host_1</host>
     
    </jonas-web-app>
    et pour le deuxième Web Service :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <jonas-web-app xmlns="http://www.objectweb.org/jonas/ns"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.objectweb.org/jonas/ns
                   http://www.objectweb.org/jonas/ns/jonas-web-app_4_0.xsd" >
     
      <!-- the virtual host on which deploy the web application -->
      <host>host_2</host>
     
    </jonas-web-app>
    Voilà

    J'espère que ça aidera d'autre personne


    Shadowi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/11/2013, 16h48
  2. Réponses: 1
    Dernier message: 15/03/2010, 04h40
  3. Réponses: 0
    Dernier message: 19/06/2009, 14h38
  4. Transmettre GET sur un port différent
    Par krfa1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/02/2008, 06h33
  5. Déploiement web services SOAP sur Websphere 5.1
    Par g_rare dans le forum Websphere
    Réponses: 1
    Dernier message: 19/03/2007, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo