It's not a secret anymore!
The moose likes Web Services and the fly likes webservice using servlet Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of OCA Java SE 8 Programmer I Study Guide this week in the OCAJP 8 forum!
JavaRanch » Java Forums » Java » Web Services
Bookmark "webservice using servlet " Watch "webservice using servlet " New topic

webservice using servlet

sreenevas varkala

Joined: Nov 01, 2004
Posts: 4
I am trying to use the google api. I am able to query and get the response from the google webservice if i execute my standalone java program in the command line. But if i make the same java program into a servlet I am getting the following exception:
Unable to create SOAP connection factory: Provider org.apache.axis.soap.SOAPConnectionFactoryImpl not found.

Here is my code :
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

import javax.xml.soap.*;
import javax.xml.transform.*;

public class SoapClient extends HttpServlet
SOAPConnectionFactory scf;
SOAPConnection connection;
SOAPFactory sf;
MessageFactory mf;
SOAPMessage message;
SOAPMessage resp;
SOAPPart soapPart;
SOAPEnvelope envelope;
SOAPBody body;
URL endpoint;
TransformerFactory tf;
Transformer transformer;
StreamResult result;
Source content;

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException

//Create the connection
scf = SOAPConnectionFactory.newInstance();
connection = scf.createConnection();
sf = SOAPFactory.newInstance();
//Create the message
mf = MessageFactory.newInstance();
message = mf.createMessage();
soapPart = message.getSOAPPart();
envelope = soapPart.getEnvelope();
body = envelope.getBody();
//Populate the body of the message
Name bodyName = sf.createName("getPrice", "ns1", "urn:xmethods-BNPriceCheck");
SOAPBodyElement bodyElement = body.addBodyElement(bodyName);
Name name = sf.createName("isbn");
SOAPElement isbn = bodyElement.addChildElement(name);

//Display the request sent (Code Sample 1)
System.out.println("SOAP Request Sent:");

//Set the destination
endpoint = new URL("");
//Send the message
resp =, endpoint);
//Close the connection

//Display the resp received (Code Sample 3)
System.out.println("SOAP Response Received:");

//Create a transformer
tf = TransformerFactory.newInstance();
transformer = tf.newTransformer();
//Retrieve content of the response
content = resp.getSOAPPart().getContent();
//Display it on the console
result = new StreamResult(System.out);
transformer.transform(content, result);
catch(Exception e)

PrintWriter out = response.getWriter();
out.println("<body bgcolor=\"white\">");
out.println("srinivas </body></html>");


public static void main(String arg[])


William Brogden
Author and all-around good cowpoke

Joined: Mar 22, 2000
Posts: 13018
The error
org.apache.axis.soap.SOAPConnectionFactoryImpl not found.
would appear to indicate that you just need to put the jar file containing the org.apache.axis.soap package where the servlet engine can see it.
Note that if you are using Tomcat, Tomcat totally ignores your environment classpath.
See the documentation that tomcat comes with tomcat-docs/class-loader-howto.html
sreenevas varkala

Joined: Nov 01, 2004
Posts: 4
Thank u. I understood what you are saying. I am using tomcat, so I will go thru the documentation.
Thanks once again,
sreenevas varkala

Joined: Nov 01, 2004
Posts: 4
Hello Mr Bill
After reading the tomcat docs I was able to figure out the if's n but's of tomcat class loaders. I was also able to solve my servlet problem.

Thanks a lot,
I agree. Here's the link:
subject: webservice using servlet
It's not a secret anymore!