wood burning stoves 2.0*
The moose likes Web Services and the fly likes wsdl not getting called Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Web Services
Bookmark "wsdl not getting called" Watch "wsdl not getting called" New topic
Author

wsdl not getting called

Himanshu Bisht
Ranch Hand

Joined: Aug 27, 2004
Posts: 96
HI all this is very urgent..
I'm not a techie when it comes to Web services

My problem is
when I trying to invoke a web sevice method in my environment it works fine. However when we deploy it on the our clients environment it does not work. We test in Windows env. and out client has UNIX env.

The strange thing is when we try to catch the exception it just escapes that.

I tried with catch the instance of Throwable also.
the code causing prob is here:


Service service = null;
org.apache.axis.client.Service dpf = null;
Operation operation = null;
try{
service = selectService(serviceNS, serviceName);
dpf = new org.apache.axis.client.Service(wsdlParser, service.getQName());
}catch(Throwable t)
{
t.printStackTrace();
System.out.println(t.getMessage());
}




The selecService() method is here

public Service selectService(String serviceNS, String serviceName)
throws Exception {

QName serviceQName = (((serviceNS != null)
&& (serviceName != null))
? new QName(serviceNS, serviceName)
: null);
ServiceEntry serviceEntry = (ServiceEntry) getSymTabEntry(serviceQName,
ServiceEntry.class);
return serviceEntry.getService();
}


the getSymTabEntry method is here

public SymTabEntry getSymTabEntry(QName qname, Class cls) {
HashMap map = wsdlParser.getSymbolTable().getHashMap();
System.out.println("");
Iterator iterator = map.entrySet().iterator();

while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
QName key = (QName) entry.getKey();
Vector v = (Vector) entry.getValue();

if ((qname == null) || qname.equals(qname)) {
for (int i = 0; i < v.size(); ++i) {
SymTabEntry symTabEntry = (SymTabEntry) v.elementAt(i);

if (cls.isInstance(symTabEntry)) {
return symTabEntry;
}
}
}
}
return null;
}


The problem is that the "getSymTabEntry" method is returning "null" and that might be beacause we are getting empity HashMap in the first line.
I want to know what could be the reason for returning an empity hash map (in UNIX environment only)

The wsdl URL is
"http://mrk.inter.loc:41414/soap/CheckStatus.wsdl"

The code whic parses this url is

public DynamicInvoker(String wsdlURL) throws Exception {
// Start by reading in the WSDL using Parser
Parser wsdlParser = new Parser();
System.out.println("Reading WSDL document from '" + wsdlURL + "'");
wsdlParser.run(wsdlURL);
}

We need to deliver it by tommorow
Any help from all u gr8 ppl will highly appreciated

Thanks
There is a solution to every problem........
 
 
subject: wsdl not getting called
 
Similar Threads
Is it Synchronous or Asynchronous?
problem with webservice dynamic proxyclient
ServiceFactory.newInstance
wsdl not getting called
Regarding Web Service Call from Java