Forum Discussion

MickH's avatar
MickH
New Contributor
5 years ago
Solved

Cannot Create new SoapUI Project from a wsdl that binds ok in CICS WS on mainframe

I'm trying to create a new SoapUI project from a wsdl and xsd that bind ok on mainframe to create a CICS WebService so cannot imagine any syntax error or the like.

Please note I've tried this in SoapUI v5.4.0 & v5.2.1 (NOT SoapUI Pro).

 

The popup message states;

 

Error loading [http://localhost/var/cics/msp/dev10/DataContracts/Include/Generic.xsd]: org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException: error: Reference to undefined entity: raquo

 

The pertinent bit of error log is below, but not particularly useful to me as I cannot determine what is wrong.

 

2019-11-25 14:26:44,477 ERROR [errorlog] com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
 at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader.makeInvalidDefinitionException(WsdlLoader.java:127)
 at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader.loadXmlObject(WsdlLoader.java:117)
 at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:486)
 at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.selectDefinitionParts(SchemaUtils.java:513)
 at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:496)
 at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.selectDefinitionParts(SchemaUtils.java:513)
 at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:496)
 at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:475)
 at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionCache.update(AbstractDefinitionCache.java:92)
 at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext$Loader.construct(AbstractDefinitionContext.java:208)
 at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46)
 at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:131)
 at java.lang.Thread.run(Unknown Source) 

 

Any and all suggestions as to what is wrong will be gratefully received.

  • Hey MickH,

    Yeah, my immediate thought was that the file was malformed (so wont open in a browser or anything with an xml parser), but the error message indicates different.

    Did i understand correctly....the .xsd is embedded in the .wsdl?

    In that case if you open the .wsdl in any text editor (if youve got xmlspy thats even better as it has an xmlparser included) and search for the ampersand character.

    There should be an entity placeholder that isnt one of the five allowed entities (& or > or
    &lt; or &apos; or &quot; which corresponds to & or > or < or ' or ")

    There should be another entity value starting with the ampersand character (i.e. '&') that isn't one of the five allowed. That'll be the problem and you need to encode or remove.

    Nice one,

    Rich
  • Many thanks for all your responses on this subject, particularly Rich. I'm going to mark this as solved, despite the problem still existing. What I did for a workaround was port the xsd & wsdl back to my C: drive, changed the encoding back to UTF and the pathnames to C: and offered that to SoapUI. Of course it worked and so I can progress with a litlle testing.

    For now the character set translation problem remains unsolved for this particular wsdl, but I do think it is a SoapUI problem given the EBCDIC version binds perfectly in CICS.

    Thanks again.

7 Replies

  • richie's avatar
    richie
    Community Hero
    Hi ,

    You've posted this in the wrong forum fella, you need to post this in the free open source SoapUI forum rather than the paid for ReadyAPI! forum. I'm not saying this to be awkward or anything, but SoapUI is quite different to ReadyAPI! now and so you might not get this problem in ReadyAPI!, despite issue appearing with SoapUi (and vice versa).

    HOWEVER, I saw in one part of the error log it mentioned undefined entity and i csn guess what the problem is.

    There are 5 entities (reserved character placeholders in xml). Somewhere in the file you have an undefined entity - so you have a placeholder such as nonbreaking space character ..i.e. &nbsp in your .wsdl that isn't being recognised by UTF-8 which is the default charset for xml, so either you remove these unrecognised entity values OR you alter them to a value that is accepted such as &#160

    Cheers,

    Rich
  • nmrao's avatar
    nmrao
    Champion Level 3
    Please try opening the wsdl from browser and see if that is ok or do you see any error.
    • MickH's avatar
      MickH
      New Contributor

      Thanks for the replies thus far.

       

      Yes, the wsdl opens fine in Internet Explorer. I then can port it to mainframe and bind it into a CICS Webservice so syntactically the wsdl and associated xsd is fine.

       

      I think Richie has touched upon the real problem in that SoapUI is objecting to some form of non-displayable character/s. However, I cannot see these in Visual Studio Code and do not know how to view / find these. Any further suggestions along these lines would be helpful.

       

      TIA

       

      • richie's avatar
        richie
        Community Hero
        Hey MickH,

        Yeah, my immediate thought was that the file was malformed (so wont open in a browser or anything with an xml parser), but the error message indicates different.

        Did i understand correctly....the .xsd is embedded in the .wsdl?

        In that case if you open the .wsdl in any text editor (if youve got xmlspy thats even better as it has an xmlparser included) and search for the ampersand character.

        There should be an entity placeholder that isnt one of the five allowed entities (&amp; or &gt; or
        &lt; or &apos; or &quot; which corresponds to & or > or < or ' or ")

        There should be another entity value starting with the ampersand character (i.e. '&') that isn't one of the five allowed. That'll be the problem and you need to encode or remove.

        Nice one,

        Rich