• Welcome to KonaKart Community Forum. Please login or sign up.
 

Which libraries/jars are needed to use the SOAP APIExample class?

Started by michaelwechner, June 24, 2010, 03:56:59 pm

Previous topic - Next topic

michaelwechner

Hi

I am trying to use the SOAP API Example (java_soap_examples/src/com/konakart/ApiExample.java)
within my third party java webapp.

There is a directory:

ls java_soap_examples/lib/
activation.jar         commons-discovery-0.2.jar   kk_wsdl.jar         saaj.jar
axis-ant.jar         commons-logging-1.0.4.jar   log4j-1.2.12.jar      wsdl4j-1.5.1.jar
axis.jar         jaxrpc.jar

listing some jars, but I assume this is does not contain the API/implementation code.

Any pointers are very much appreciated.

Thanks

Michael

kate

If I were you I would start by looking at the build.xml that is used for running the SOAP examples.  (under java_soap_examples)

Currently it contains:

   <path id="axis.path">
      <pathelement location="./lib/axis.jar" />
      <pathelement location="./lib/axis-ant.jar" />
      <pathelement location="./lib/axis-schema.jar" />
      <pathelement location="./lib/commons-discovery-0.2.jar" />
      <pathelement location="./lib/commons-logging-1.0.4.jar" />
      <pathelement location="./lib/jaxrpc.jar" />
      <pathelement location="./lib/log4j-1.2.12.jar" />
      <pathelement location="./lib/saaj.jar" />
      <pathelement location="./lib/wsdl4j-1.5.1.jar" />
      <pathelement location="./lib/activation.jar" />
      <pathelement location="./lib/mail.jar" />
      
      <pathelement location="./lib/wss4j-1.5.5.jar" />
      <pathelement location="./lib/xmlsec-1.4.2.jar" />
      <pathelement location="./lib/bcprov-jdk14-140.jar" />
      <pathelement location="./lib/xalan-2.7.1.jar" />
   </path>

   <path id="konakart.path">
         <pathelement location="../webapps/konakart/WEB-INF/lib/commons-collections-3.1.jar" />
         <pathelement location="../webapps/konakart/WEB-INF/lib/commons-configuration-1.1.jar" />
         <pathelement location="../webapps/konakart/WEB-INF/lib/commons-lang-2.4.jar" />
         <pathelement location="../webapps/konakart/WEB-INF/lib/konakart.jar" />
         <pathelement location="../webapps/konakart/WEB-INF/lib/konakart_utils.jar" />
         <path location="../webapps/konakart/WEB-INF/classes" />
   </path>

   <path id="run.path">
      <path location="./classes" />
      <path refid="konakart.path" />
      <path refid="axis.path" />
   </path>

michaelwechner


michaelwechner

When running ant then I receive the following exception:

Buildfile: build.xml

clean:
     [echo] Cleanup...

axis_client_generation:
     [echo] Create the KonaKart client stubs from the WSDL

compile:
     [echo] Compile the examples
    [mkdir] Created dir: /Users/michaelwechner/src/konakart/konakart-4.2.0.1/java_soap_examples/classes
    [javac] Compiling 59 source files to /Users/michaelwechner/src/konakart/konakart-4.2.0.1/java_soap_examples/classes
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.

run:
     [java] First the low-level version...
     [java]
     [java] AxisFault
     [java]  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
     [java]  faultSubcode:
     [java]  faultString: org.apache.axis.InternalException: java.lang.Exception: Couldn't find a matching Java operation for WSDD operation &quot;getCountry&quot; (1 args)
     [java]  faultActor:
     [java]  faultNode:
     [java]  faultDetail:
     [java]    {http://xml.apache.org/axis/}hostname:michael-wechners-macbook-pro.local
     [java]
     [java] org.apache.axis.InternalException: java.lang.Exception: Couldn't find a matching Java operation for WSDD operation "getCountry" (1 args)
     [java]    at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
     [java]    at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
     [java]    at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
     [java]    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
     [java]    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
     [java]    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
     [java]    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
     [java]    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
     [java]    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
     [java]    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
     [java]    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
     [java]    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
     [java]
     [java] Next the recommended high-level version...
     [java]
     [java]    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
     [java]    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
     [java]    at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
     [java]    at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
     [java]    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
     [java]    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
     [java]    at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
     [java]    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
     [java]    at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
     [java]    at org.apache.axis.client.Call.invoke(Call.java:2767)
     [java]    at org.apache.axis.client.Call.invoke(Call.java:2443)
     [java]    at org.apache.axis.client.Call.invoke(Call.java:2366)
     [java]    at org.apache.axis.client.Call.invoke(Call.java:1812)
     [java]    at com.konakart.ws.KKWebServiceEngSoapBindingStub.getAllCountries(Unknown Source)
     [java]    at com.konakart.AxisExample.lowLevelVersion(Unknown Source)
     [java]    at com.konakart.AxisExample.main(Unknown Source)
     [java] com.konakart.app.KKException: org.apache.axis.InternalException: java.lang.Exception: Couldn't find a matching Java operation for WSDD operation "getCountry" (1 args)
     [java]    at com.konakart.ws.KKWebServiceSoapMgr.createKKAdminExceptionFromAxisFault(Unknown Source)
     [java]    at com.konakart.app.KKWSEng.manageException(Unknown Source)
     [java]    at com.konakart.app.KKWSEng.getAllCountries(Unknown Source)
     [java]    at com.konakart.AxisExample.highLevelVersion(Unknown Source)
     [java]    at com.konakart.AxisExample.main(Unknown Source)
     [java] Caused by: org.apache.axis.InternalException: java.lang.Exception: Couldn't find a matching Java operation for WSDD operation "getCountry" (1 args)
     [java]    at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
     [java]    at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
     [java]    at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
     [java]    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
     [java]    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
     [java]    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
     [java]    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
     [java]    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
     [java]    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
     [java]    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
     [java]    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
     [java]    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
     [java]    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
     [java]    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
     [java]    at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
     [java]    at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
     [java]    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
     [java]    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
     [java]    at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
     [java]    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
     [java]    at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
     [java]    at org.apache.axis.client.Call.invoke(Call.java:2767)
     [java]    at org.apache.axis.client.Call.invoke(Call.java:2443)
     [java]    at org.apache.axis.client.Call.invoke(Call.java:2366)
     [java]    at org.apache.axis.client.Call.invoke(Call.java:1812)
     [java]    at com.konakart.ws.KKWebServiceEngSoapBindingStub.getAllCountries(Unknown Source)
     [java]    at com.konakart.ws.KKWebServiceEng.getAllCountries(Unknown Source)
     [java]    ... 3 more


Any idea what might be wrong (I am currently still using the 4.2.0.1 version)?

Btw, it would be nice to add a short README.txt explaining stuff like "make sure to set the port correctly within 'konakart.wsdl' etc.

Thanks

Michael

michaelwechner

Hi

I have noticed that within build.xml the run.path is using

konakart.jar

and

java_soap_examples/classes

which is based on

java_soap_examples/src/com/konakart/wsapp

which was generated from konakart.wsdl,

whereas it is not clear to me why both "libs" are used, since they seem to have overlapps
re wsapp (and ws).

Also it's not clear to me why the ApiExample is excluded within build.xml

excludes="**/ApiExample.java">

Any pointers are appreciated.

Thanks

Michael

michaelwechner

Hi

I have figured out why I have received the exception: I forgot to enable SOAP within Konakart:

webapps/konakart/WEB-INF/server-config.wsdd

<parameter name="allowedMethods" value="*"/>

It's working very fine now, whereas it's my bad that I did not read the user guide properly.
But nevertheless I think it would be good to have a README.txt within the java_soap_examples directory.

Btw. in the case of Wyona Yanel it seems that only the following libs are necessary to make it work:

konakart-4.2.0.1.jar        konakart_utils-4.2.0.1.jar  commons-lang-2.4.jar

and configuration

konakart_axis_client.properties

Cheers

Michael