Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: SOAP::WSDL Installation

by Khurrum (Novice)
on Nov 07, 2007 at 06:49 UTC ( #649412=note: print w/replies, xml ) Need Help??


in reply to Re: SOAP::WSDL Installation
in thread SOAP::WSDL Installation

I will try doing that but the only reason why i am using cygwin is because it provides the "Make" utility. I cant seem to find the binary files for GNU make, which is why i cant run the make command from cmd.exe. The reason why i need the utitliy because the perl packages require the execution of makefiles provided. I am not sure if it would be required if i use PPM.

Would you be able to clarify that while i uninstall and install Active Perl again.

The other issue is that PPM has really old version of the packages. Like i just checked and it has SOAP::Lite 0.55 whereas now 0.70 is even available and same is the thing with SOAP::WSDL. Is there any way i can another repository?

Replies are listed 'Best First'.
Re^3: SOAP::WSDL Installation
by erroneousBollock (Curate) on Nov 07, 2007 at 13:26 UTC
    I will try doing that but the only reason why i am using cygwin is because it provides the "Make" utility. I cant seem to find the binary files for GNU make, which is why i cant run the make command from cmd.exe.
    You don't need make, or any other tools. If you use ActivePerl, it installs binary packages, much like a linux distribution.

    The other issue is that PPM has really old version of the packages. Like i just checked and it has SOAP::Lite 0.55 whereas now 0.70 is even available and same is the thing with SOAP::WSDL. Is there any way i can another repository?
    ppm rep add trouchelle.com http://trouchelle.com/ppm/

    That will add the trouchelle.com repository, which has SOAP-Lite 0.69 and SOAP::WSDL 1.26.

    -David

      Thank you so much for your reply. I did add the repository and when i used the GUI for PPM i verified that the repository was added but when i search for the perl module it still shows version 0.55 for SOAP::Lite and for SOAP::WSDL it shows 1.23 i went further to check the website manually and verified that it does have the latest packages. I tried to manually install the packages but it gives the following errors:
      C:\SoapTest>ppm install http://trouchelle.com/ppm/SOAP-Lite.ppd ppm install failed: Can't find any package that provide Crypt-SSLeay f +or SOAP-Li te
      C:\SoapTest>ppm install http://trouchelle.com/ppm/SOAP-WSDL.ppd ppm install failed: No PPD found at http://trouchelle.com/ppm/SOAP-WSD +L.ppd
      Secondly, using the older packages that i was able to get from before i am getting another error. Initially it complained about using the <import> tag for XML Schema definition, which was a problem i knew as SOAP::WSDL doesnt support XML Schema definition imports. I fixed that by inlining the schema and now when i run the script it gives the following error:
      C:\SoapTest>perl perlMonk.pl Reference found where even-sized list expected at C:/Perl/site/lib/SOA +P/WSDL.pm line 235. SampleTest Error: The message with Action 'http://tempuri.org/#SampleT +est' canno t be processed at the receiver, due to a ContractFilter mismatch at th +e Endpoint Dispatcher. This may be because of either a contract mismatch (mismatc +hed Action s between sender and receiver) or a binding/security mismatch between +the sender and the receiver. Check that sender and receiver have the same contr +act and th e same binding (including security requirements, e.g. Message, Transpo +rt, None).
      I am thinking maybe it has to do with my App.config file and the settings i use there. Would you be able to guide me on this? Lastly, can you suggest a tool that i can use to view the expected SOAP request that my WCF web service expects, the actual request sent from my perl script and the response sent from the web service. I have tried Microsoft's Service Trace Viewer but it doesnt provide all the info. Maybe a tool like NetMon would allow me to view the network traffic or something else that you can suggest.

      Thanks
        I did add the repository and when i used the GUI for PPM i verified that the repository was added but when i search for the perl module it still shows version 0.55 for SOAP::Lite and for SOAP::WSDL it shows 1.23 i went further to check the website manually and verified that it does have the latest packages.
        It seems quite unlikely that PPM would pick up the latest version of SOAP::WSDL from trouchelle.com but not SOAP::Lite. Are you sure you weren't just looking at the installed version number of SOAP::Lite?

        I tried to manually install the packages but it gives the following errors:
        C:\SoapTest>ppm install http://trouchelle.com/ppm/SOAP-Lite.ppd ppm install failed: Can't find any package that provide Crypt-SSLeay f +or SOAP-Li te
        Firstly, it's not a good idea to fight the package management system ;) If you don't know why it won't let you install something, you're not equipped to forcefully install it.

        Looking at build status for 'C' packages on trouchelle.com, it's apparent that they don't have a building version of Crypt::SSLeay, which is a dependency of SOAP::Lite. ActiveState also don't seem to have it, so you'll need another repository:

          ppm rep add UofWinnipeg http://theoryx5.uwinnipeg.ca/ppms

        Once done, have the GUI install Crypt-SSLeay, and then try again to install SOAP-Lite through the GUI. Don't worry to much about mixing and matching packages from different repos... just make sure they're for Perl 5.8 (not 5.6).

        C:\SoapTest>ppm install http://trouchelle.com/ppm/SOAP-WSDL.ppd ppm install failed: No PPD found at http://trouchelle.com/ppm/SOAP-WSD +L.ppd
        I verified that trouchelle.com does host the SOAP-WSDL ppd file (and zip file) exactly where it advertises... that error message looks weird, perhaps related to connectivity? Definitely try again after you get the newer version of SOAP::Lite.

        Secondly, using the older packages that i was able to get from before i am getting another error. Initially it complained about using the <import> tag for XML Schema definition, which was a problem i knew as SOAP::WSDL doesnt support XML Schema definition imports. ... I am thinking maybe it has to do with my App.config file and the settings i use there. Would you be able to guide me on this?
        Ok, now we're entering territory I'm not totally read-up on ;) Are you definitely feeding SOAP::WSDL a file/url that contains only a valid WSDL description of your webservice? If so, I imagine the problem is that SOAP::WSDL can't handle some of the WCF-generated WSDL constructs. I've found a few links for you to read:

           1, 2,3,4,5

        A google search for '+WCF +WSDL' finds many more.

        (Update: I think that second link describes exactly what's going on and what you need to do to fix it.)

        Lastly, can you suggest a tool that i can use to A) view the expected SOAP request that my WCF web service expects, B) the actual request sent from my perl script and the C) response sent from the web service.
        For A), I've no idea. Usually, I find that manually reading the WSDL is enough to figure out what I'm doing wrong. It's mainly up to the remote webservice as to how strictly it complies with the WSDL specification it publishes.

        For B) & C), just turn on the 'trace' option in SOAP::Lite.

        Unfortunately, SOAP interoperability is known industry-wide to be a joke. Developers fight these battles all the time. Doing google search for 'SOAP interoperability' is enlightening.

        -David

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://649412]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (3)
As of 2022-07-04 12:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?