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

Web & réseau Delphi Discussion :

Web Server ISAPI format document/literal


Sujet :

Web & réseau Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 22
    Points : 9
    Points
    9
    Par défaut Web Server ISAPI format document/literal
    Bonjour,
    Hier j'ai posté une discussion dans la catégorie langage, mais je pense que "web/réseau" est plus approprié.
    Ne sachant pas comment déplacer cette discussion.
    Voici mon problème : impossible de changer le format RPC/encoded en Delphi. Ce format n'est pas compris par Java donc j'aimerais que le WSDL de mon server soit en document/literal.

    Pour plus d'information voici le post d'hier :
    http://www.developpez.net/forums/d11...i/#post6491587

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 553
    Points : 25 133
    Points
    25 133
    Par défaut
    Pourtant le PHP, le comprend, j'ai toujours forcé le encoded avec Delphi 7, le literal étant souvent franchement pas terrible !
    J'ai déjà eu un client Java, cela fonctionnait, ton client dois utiliser JAX-RPC au lieu de JAX-WS, cela doit être cela ton problème, ils ont changés l'implémentation et retirer le support du RPC mais heureusement les sources sont toujours disponibles !
    Tout ça pour un problème de performance, ils auraient pu laisser pour les petits serveurs le mode RPC, certe plus lent mais tellement plus simple !

    la balise générée est bien

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    tu veux à la place
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <soap:body use="literal" />

    je crois que ceci est une mauvaise nouvelle : Release Notes for XE2

    Services .NET SOAP disponibles avec Delphi Prism

    Le support du serveur Win32 SOAP génère des services Web de style RPC|Encoded. Si vous voulez un service document/littéral ou un service de tout autre style compatible WS-I, vous devez construire votre serveur SOAP avec Delphi Prism, qui supporte les spécifications SOAP prises en charge par le .NET Framework, notamment les styles compatibles WS-I.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 22
    Points : 9
    Points
    9
    Par défaut
    Ok. Merci.
    Le client Java n'est pas développé par moi, je vais leur demander d'utiliser JAX-RPC ... mais ce n'est pas gagné
    Si je comprends bien, si c'est mon web server qui doit changer et donc document/literal je dois migrer vers la XE2 avec le module prism. C'est quand même dommage que la version 2010 ne permette pas ceci.

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 553
    Points : 25 133
    Points
    25 133
    Par défaut
    Mais cela existe en Lazarus !
    Web Service Toolkit écrit en Free Pascal devrait être compatible !
    Tente de l'intégrer dans ton Delphi comme une Lib externe !


    Sinon tu peux juste faire une passerelle !
    Tu fais un Client en RAD PHP ou en Zend Studio, qui importe ton Serveur et réexporte son propre Server, il fera office de Proxy !
    RAD PHP sera tout de même plus léger qu'une Visual Studio .NET + Prism à installer pour développer ET à déployer !
    Surtout ne déporte pas l'intelligence dans Prism, fait juste un Proxy, un module d'extension pour CE cas !

    Si tu utilises Prism, tu pourrais en Delphi faire un Serveur DataSnap, en Prism un Client DataSnap qui lui expose le WS !

    En parlant de DataSnap, tu pourrais l'exporter en WebService REST !
    le REST pourrait remplacer le SOAP !
    A Etudier aussi !

    Après tout dépend aussi le contrat de développement, j'ai eu ce genre de mésaventure avec le WSS .NET pour la sécurité des WS qu'exigeait un partenaire sur un projet, cet élément ne faisait pas partie du cahier des charges, rien en Delphi, cela nécessitait donc une nouvelle techno (un passerelle .NET ou Java justment) dont le coût doublait celui du projet !
    Au final, on a choisi un Tunneling SSH avec Port Forwarding, pour moi, c'était une fonctionnalité intégré à l'application, le coût fut donc minime !
    Pour eux, tout bon admin réseau sait installé un Serveur SSH Windows ou un OpenSSH !

    Sinon tu leur fait une DLL !
    un DLL en JNI ou JNA utilisable depuis du JAVA qui fera un client !

    Tu as plein de possibilité !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 22
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup pour tout ces détails.
    Je suis en train de regarder pour JNI.

    J'ai un autre problème cette fois avec SAP pffffff ! Je m'en sortirais jamais.
    Il ne reconnait pas le type array.
    J'ai un array of array of string.
    mon wsdl est le suivant :
    - <types>
    - <xs:schema targetNamespace="urn:serverIntf" xmlns="urn:serverIntf">
    - <xs:complexType name="ArrayOfArray">
    - <xs:complexContent>
    - <xs:restriction base="soapenc:Array">
    <xs:sequence />
    <xs:attribute ref="soapenc:arrayType" n1:arrayType="ns1:ArrayOfString[]" xmlns:n1="http://schemas.xmlsoap.org/wsdl/" />
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    - <xs:complexType name="ArrayOfString">
    - <xs:complexContent>
    - <xs:restriction base="soapenc:Array">
    <xs:sequence />
    <xs:attribute ref="soapenc:arrayType" n1:arrayType="xs:string[]" xmlns:n1="http://schemas.xmlsoap.org/wsdl/" />
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    </xs:schema>
    </types>

    SAP me dit qu'ils attendent plus :
    <xsd:element name="MyArray1" type="tns:MyArray1Type"/>
    <xsd:complexType name="MyArray1Type">
    <xsd:sequence>
    <xsd:element name="x" type="xsd:string"
    minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
    </xsd:complexType>

    Je ne trouve pas comment arriver à enlever la restriction de base et l'attribut.
    J'ai essayé de modifier les options des composants mais le WSDL généré ne change pas.
    Quelqu'un a-t-il une idée ?
    Merci d'avance.

Discussions similaires

  1. Web Server ISAPI
    Par pibull dans le forum Langage
    Réponses: 0
    Dernier message: 06/02/2012, 18h26
  2. Web Services : Mode Message/Document et Mode RPC
    Par Le Singe dans le forum Services Web
    Réponses: 3
    Dernier message: 07/02/2006, 13h39
  3. SQL SERVER 2000 -Format date
    Par Billouze dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/10/2005, 10h51
  4. Installation de crystal report web server pour linux
    Par shadowR dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 12/12/2004, 01h14
  5. SOAP sans web server
    Par damsh dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 01/07/2004, 15h33

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