soap4r 1.4.8.1 with REXML 2.7.1 - no REXML::VERSION_MAJOR

Discussion in 'Ruby' started by Damphyr, Jul 16, 2003.

  1. Damphyr

    Damphyr Guest

    I grabbed the latest soap4r and had a go with the wsdl driver, only to
    come to an abrupt stop with the following

    site_ruby/1.6/wsdl/rexmlparser.rb:40:in `doParse': uninitialized
    constant VERSION_MAJOR at REXML (NameError)
    from f:/devlab/ruby/lib/ruby/site_ruby/1.6/wsdl/parser.rb:85:in `parse'
    from f:/devlab/ruby/lib/ruby/site_ruby/1.6/soap/wsdlDriver.rb:81:in `parse'
    from f:/devlab/ruby/lib/ruby/site_ruby/1.6/soap/wsdlDriver.rb:39:in
    `initialize'
    from wsdltest.rb:5:in `new'
    from wsdltest.rb:5


    I?m running 1.6.8 on W2K at the moment and I looked for a VERSION_MAJOR
    in REXML but the beast does not want to show itself.
    Any ideas ?
    V.-


    ____________________________________________________________________
    http://www.freemail.gr - äùñåÜí õðçñåóßá çëåêôñïíéêïý ôá÷õäñïìåßïõ.
    http://www.freemail.gr - free email service for the Greek-speaking.
    Damphyr, Jul 16, 2003
    #1
    1. Advertising

  2. --vtzGhvizbBRQ85DL
    Content-Type: text/plain; charset=us-ascii
    Content-Disposition: inline

    On Wed 16 Jul 2003 at 17:29:40 +0900, Damphyr wrote:

    > I grabbed the latest soap4r and had a go with the wsdl driver, only to
    > come to an abrupt stop with the following
    >
    > site_ruby/1.6/wsdl/rexmlparser.rb:40:in `doParse': uninitialized
    > constant VERSION_MAJOR at REXML (NameError)
    > from f:/devlab/ruby/lib/ruby/site_ruby/1.6/wsdl/parser.rb:85:in
    > `parse'
    > from f:/devlab/ruby/lib/ruby/site_ruby/1.6/soap/wsdlDriver.rb:81:in
    > `parse'
    > from f:/devlab/ruby/lib/ruby/site_ruby/1.6/soap/wsdlDriver.rb:39:in
    > `initialize'
    > from wsdltest.rb:5:in `new'
    > from wsdltest.rb:5
    >
    >
    > I?m running 1.6.8 on W2K at the moment and I looked for a VERSION_MAJOR
    > in REXML but the beast does not want to show itself.
    > Any ideas ?


    I had similar problems.

    Try the attached diff.

    Ian
    --
    Ian Macdonald | Radial Telemetry Infiltration
    System Administrator |
    |
    http://www.caliban.org |
    |

    --vtzGhvizbBRQ85DL
    Content-Type: text/plain; charset=us-ascii
    Content-Disposition: attachment; filename="ruby-SOAP4R-1.4.8.1-REXML.diff"

    diff -uNr soap4r-1_4_8_1.orig/lib/soap/rexmlparser.rb soap4r-1_4_8_1/lib/soap/rexmlparser.rb
    --- soap4r-1_4_8_1.orig/lib/soap/rexmlparser.rb 2003-01-16 05:01:00.000000000 -0800
    +++ soap4r-1_4_8_1/lib/soap/rexmlparser.rb 2003-05-08 16:10:59.000000000 -0700
    @@ -36,8 +36,10 @@

    def doParse( stringOrReadable )
    source = nil
    - if REXML::VERSION_MAJOR < 2 or
    - ( REXML::VERSION_MAJOR == 2 and REXML::VERSION_MINOR <= 4 )
    + version_major, version_minor =
    + REXML::Version.match(/(\d+)\.(\d+)/)[1,2].map! {|x| x.to_i}
    + if version_major < 2 or
    + ( version_major == 2 and version_minor <= 4 )
    source = if charset
    ::SOAP::Charset.codeConv( stringOrReadable, ::SOAP::Charset.getCharsetStr( charset ), 'UTF8' )
    else
    diff -uNr soap4r-1_4_8_1.orig/lib/wsdl/rexmlparser.rb soap4r-1_4_8_1/lib/wsdl/rexmlparser.rb
    --- soap4r-1_4_8_1.orig/lib/wsdl/rexmlparser.rb 2003-01-16 05:04:54.000000000 -0800
    +++ soap4r-1_4_8_1/lib/wsdl/rexmlparser.rb 2003-05-08 16:10:49.000000000 -0700
    @@ -36,8 +36,10 @@

    def doParse( stringOrReadable )
    source = nil
    - if REXML::VERSION_MAJOR < 2 or
    - ( REXML::VERSION_MAJOR == 2 and REXML::VERSION_MINOR <= 4 )
    + version_major, version_minor =
    + REXML::Version.match(/(\d+)\.(\d+)/)[1,2].map! {|x| x.to_i}
    + if version_major < 2 or
    + ( version_major == 2 and version_minor <= 4 )
    source = if charset
    ::SOAP::Charset.codeConv( stringOrReadable, ::SOAP::Charset.getCharsetStr( charset ), 'UTF8' )
    else

    --vtzGhvizbBRQ85DL--
    Ian Macdonald, Jul 16, 2003
    #2
    1. Advertising

  3. Damphyr

    Damphyr Guest

    Re: soap4r 1.4.8.1 unknown attribute

    This is a multi-part message in MIME format.
    --------------000102010909000209030503
    Content-Type: text/plain; charset=us-ascii; format=flowed
    Content-Transfer-Encoding: 7bit

    OK, the patch for the version needs to be changed a bit:

    - version_major, version_minor =
    - REXML::Version.match(/(\d+)\.(\d+)/)[1,2].map! {|x| x.to_i}

    + version_major, version_minor =
    + /(\d+)\.(\d+)/.match(REXML::Version)[1,2].map! {|x| x.to_i}

    After that comes the following:

    "attr {}style"
    f:/devlab/ruby/lib/ruby/site_ruby/1.6/wsdl/soap/operation.rb:46:in
    `parseAttr': Unknown attr {}style. (WSDL::WSDLParser::UnknownAttributeError)
    from f:/devlab/ruby/lib/ruby/site_ruby/1.6/wsdl/parser.rb:188:in
    `decodeTag'
    from f:/devlab/ruby/lib/ruby/site_ruby/1.6/wsdl/parser.rb:170:in `each'
    from f:/devlab/ruby/lib/ruby/site_ruby/1.6/wsdl/parser.rb:170:in
    `decodeTag'
    from f:/devlab/ruby/lib/ruby/site_ruby/1.6/wsdl/parser.rb:111:in
    `startElement'
    from f:/devlab/ruby/lib/ruby/site_ruby/1.6/wsdl/rexmlparser.rb:62:in
    `tag_start'
    from
    f:/devlab/ruby/lib/ruby/site_ruby/1.6/rexml/parsers/streamparser.rb:17:in
    `parse'
    from f:/devlab/ruby/lib/ruby/site_ruby/1.6/rexml/document.rb:166:in
    `parse_stream'
    from f:/devlab/ruby/lib/ruby/site_ruby/1.6/wsdl/rexmlparser.rb:55:in
    `doParse'
    from f:/devlab/ruby/lib/ruby/site_ruby/1.6/wsdl/parser.rb:85:in `parse'
    from f:/devlab/ruby/lib/ruby/site_ruby/1.6/soap/wsdlDriver.rb:81:in `parse'
    from f:/devlab/ruby/lib/ruby/site_ruby/1.6/soap/wsdlDriver.rb:39:in
    `initialize'
    from wsdltest.rb:5:in `new'
    from wsdltest.rb:5

    which probably means that not everything is supported by soap4r.
    I've been playing around with the .NET Web Sedrvice stuff, and the wsdl
    file I`m trying to parse is attached.
    I'll dig in further, but it's going to take me a while
    :)
    V.-


    ____________________________________________________________________
    http://www.freemail.gr - äùñåÜí õðçñåóßá çëåêôñïíéêïý ôá÷õäñïìåßïõ.
    http://www.freemail.gr - free email service for the Greek-speaking.
    --------------000102010909000209030503
    Content-Type: text/xml;
    name="KickerService.wsdl"
    Content-Transfer-Encoding: 7bit
    Content-Disposition: inline;
    filename="KickerService.wsdl"

    <?xml version="1.0" encoding="UTF-8"?>

    <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://tempuri.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
    <types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
    <s:element name="GetTeams">
    <s:complexType/>
    </s:element>
    <s:element name="GetTeamsResponse">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="GetTeamsResult" type="s0:ArrayOfTeam"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:complexType name="ArrayOfTeam">
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="unbounded" name="Team" nillable="true" type="s0:Team"/>
    </s:sequence>
    </s:complexType>
    <s:complexType name="Team">
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string"/>
    <s:element minOccurs="0" maxOccurs="1" name="OffensivePlayer" type="s:string"/>
    <s:element minOccurs="0" maxOccurs="1" name="DefensivePlayer" type="s:string"/>
    </s:sequence>
    </s:complexType>
    </s:schema>
    </types>
    <message name="GetTeamsSoapIn">
    <part name="parameters" element="s0:GetTeams"/>
    </message>
    <message name="GetTeamsSoapOut">
    <part name="parameters" element="s0:GetTeamsResponse"/>
    </message>
    <portType name="Service1Soap">
    <operation name="GetTeams">
    <input message="s0:GetTeamsSoapIn"/>
    <output message="s0:GetTeamsSoapOut"/>
    </operation>
    </portType>
    <binding name="Service1Soap" type="s0:Service1Soap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
    <operation name="GetTeams">
    <soap:eek:peration soapAction="http://tempuri.org/GetTeams" style="document"/>
    <input>
    <soap:body use="literal"/>
    </input>
    <output>
    <soap:body use="literal"/>
    </output>
    </operation>
    </binding>
    <service name="Service1">
    <port name="Service1Soap" binding="s0:Service1Soap">
    <soap:address location="http://dfnnb019/Camp/KickerServiceDemo/Service1.asmx"/>
    </port>
    </service>
    </definitions>
    --------------000102010909000209030503--
    Damphyr, Jul 16, 2003
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. NAKAMURA, Hiroshi

    [ANN] soap4r/1.5.0 with wsdl4r/0.0.3

    NAKAMURA, Hiroshi, Sep 13, 2003, in forum: Ruby
    Replies:
    2
    Views:
    135
    NAKAMURA, Hiroshi
    May 22, 2005
  2. Brian Marick
    Replies:
    1
    Views:
    148
    NAKAMURA, Hiroshi
    Nov 7, 2003
  3. Brian Marick
    Replies:
    1
    Views:
    189
    NAKAMURA, Hiroshi
    Nov 9, 2003
  4. Daniel Berger

    rexml error - REXML::Validation

    Daniel Berger, Oct 12, 2004, in forum: Ruby
    Replies:
    2
    Views:
    145
    Henrik Horneber
    Oct 12, 2004
  5. Phlip
    Replies:
    0
    Views:
    135
    Phlip
    Jan 15, 2008
Loading...

Share This Page