You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-user@axis.apache.org by Thomas Hentschel Lund <th...@trylleskoven.dk> on 2004/05/25 20:56:18 UTC

Java client works, C++ fails against same Java server and same wsdl

Hi,

I've been pulling my hairs on this one all day, and cannot get past the 
problems alone.

I'm evaluating axis and gsoap (maybe more) for having a c++ client 
accessing a JBoss webservice (created using the jboss.net package and 
xdoclet).

My efforts with axis have until now proven wonderfully easy with a java 
client (to test the service), but the c++ client bombs out.

I created both the java and c++ stubs using the same jar files and the 
same wsdl file (generated by JBoss 3.2.3 and 3.2.4rc2).

When running the c++ client I get
execution break
m_MsgSize == 0, so return NULL

every time I try to access the server.

The server has the following error in its log

No such operation 'validateLogin'
    at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:301)
    at org.apache.axis.message.RPCElement.getParams(RPCElement.java:347)
    at 
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:184)
    at 
org.jboss.net.axis.server.EJBProvider.processMessage(EJBProvider.java:260)

And returns this
2004-05-25 15:49:46,677 DEBUG [org.apache.axis.SOAPPart] Exit: 
SOAPPart::getAsString(): <?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <soapenv:Fault>
   <faultcode>Server.userException</faultcode>
   <faultstring>No such operation &apos;validateLogin&apos;</faultstring>
   <detail/>
  </soapenv:Fault>
 </soapenv:Body>
</soapenv:Envelope>


The java client operates without any problems.

The method I try to invoke is:

    /**
     * @ejb.interface-method
     * @ejb.permission unchecked="true"
     * @ejb.transaction type="Required"
     * @jboss-net.web-method
     */
    public boolean validateLogin(String userName, String password) {
        try {
            UserLocal user = 
UserUtil.getLocalHome().findByUsername(userName);
            if (user.getPassword().equals(password)) {
                // Password ok
                return true;
            }
        } catch (NamingException e) {
            e.printStackTrace();
        } catch (FinderException e) {
            // Username not valid
            return false;
        }
        return false;
    }


Does anyone have any clues what so ever? Any pointers are appreciated. 
Else I will have to abandon axis as a solution. Google and the maillist 
archives didnt give me any clues.

I'm running the server on a Linux machine, client (both java and c++) on 
a win xp. I also tried running the server on the same windows box with same problem. Its the latest axis 1.1.1 for C++ I try to use.

Thanks

/Thomas