Web Service using MyEclipse using JAX-API and Web Client
Posted by sushantnayak on January 21, 2010
- Create a “Web Service Project” in the “New” window.
- Click on NEXT button, the “New Web Service Project” appears.
- Fill the “Project Name” textbox and click on FINISH button.
- Create a Java class which has will be exposed as webservice.
- The Calculator class will have the following:-
- Now click on the Web Service icon, it will show a drop-down. Then select “New Web Service”.
- “New Web Service” window pops up as below. Select the “Project” as your current project. Select Framework as “JAX-WS” and Strategy as “Create web service from Java class (Bottom-up scenario). Click on NEXT button.
- “New Soap Web Service – Bottom-up Scenario” window pops up.
- You will see the following directory structure. Also the wsdl and xsd files are created.
- Now we create the client component to consume the webservice.
- “New Web Service Client” window pops up.
- You will see the following window.
- You should see the following window, without any error displayed.
- Press FINISH after you see the below window.
- You will see the following files been created inside the client package, see below.
- Now write the code to consume the web service.
- Run the project using a web server, in this case we will use Apache Tomcat.
You will see the below screen:-
For our example we will be making a Calculator Service.
We will create a class <Calculator> and keep it inside the package named “com.calculator.ws”.

Click on the FINISH button after filling the details as above.
package com.calculator.ws;
public class Calculator {
public int add(int a, int b) { return (a + b); }
public int subtract(int a, int b) { return (a – b); }
public int multiply(int a, int b) { return (a * b); }
public int divide(int a, int b) { return (a / b); }
}
Locate the java class from the project by using BROWSE button. Click on “Generate WDSL in project” check-box and click on FINISH button.
Select the “New Web Service Client”
Check that the project name is the same as before and select “JAX-WS” as framework. Press NEXT.
Click on the BROWSE button to locate the WSDL file (follow step 9).
We will create a new package named “com.calculator.client” which will contain the client classes.
Press NEXT after completing the steps.

We will be using a JSP file as client. You can also use a java file to access the web service.
<%@page import=“com.calculator.client.CalculatorService” %>
<%@page import=“com.calculator.client.CalculatorDelegate” %><!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
<head>
<title>Calculator Test</title>
</head><body>
<h1>Calculator Page</h1>
<form action=“” method=“post”>
<table border=“0″>
<tr><td>First Value</td><td><input type=“text” name=“firstvalue” /></td></tr><tr><td>Second Value</td><td><input type=“text” name=“secondvalue”/></td></tr>
<tr><td><input type=“submit”></td></tr>
</table>
</form><%
if(request.getParameter(“firstvalue”)!=null && request.getParameter(“secondvalue”)!=null){
int first=Integer.parseInt(request.getParameter(“firstvalue”));
int second=Integer.parseInt(request.getParameter(“secondvalue”));
CalculatorService service = new CalculatorService();
CalculatorDelegate delegate = service.getCalculatorPort();
try{/* Using the web service, perform the 4 calculations */
out.println(“1. “+first+”+”+second+”=” + delegate.add(first, second)+”<br>”);
out.println(“2. “+first+”-”+second+”=” + delegate.subtract(first, second)+”<br>”);
out.println(“3. “+first+”*”+second+”=” + delegate.multiply(first, second)+”<br>”);
out.println(“4. “+first+”/”+second+”=” + delegate.divide(first, second)+”<br>”);
}catch(Exception e){
out.print(“ERROR: Cannot divide by ZERO!”);
}
}else{
out.print(“Please supply values”);
}
%></body>
</html>
Now we can have a cup of hot coffee, because we deserve it, now that our Web Service is up and running successfully.
Remember:-
Web Service is the foundation of Service Oriented Architecture.












srinivas said
hi tried the above example ,i got the result with java client . but access the webservices with jsp i got initialization error. please solve me fast.
HTTP Status 500 –
——————————————————————————–
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /result.jsp at line 7
4: String path = request.getContextPath();
5: String basePath = request.getScheme()+”://”+request.getServerName()+”:”+request.getServerPort()+path+”/”;%>
6:
7:
10:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
javax.servlet.ServletException: java.lang.ExceptionInInitializerError
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.result_jsp._jspService(result_jsp.java:73)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.lang.ExceptionInInitializerError
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
java.lang.reflect.Constructor.newInstance(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:36)
javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:95)
javax.xml.ws.spi.Provider.provider(Provider.java:83)
javax.xml.ws.Service.(Service.java:56)
org.me.cli.CalService.(CalService.java:54)
org.apache.jsp.result_jsp._jspService(result_jsp.java:63)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
javax.xml.ws.WebServiceException: Error creating JAXBContext for W3CEndpointReference.
com.sun.xml.ws.spi.ProviderImpl$2.run(ProviderImpl.java:222)
com.sun.xml.ws.spi.ProviderImpl$2.run(ProviderImpl.java:218)
java.security.AccessController.doPrivileged(Native Method)
com.sun.xml.ws.spi.ProviderImpl.getEPRJaxbContext(ProviderImpl.java:217)
com.sun.xml.ws.spi.ProviderImpl.(ProviderImpl.java:88)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
java.lang.reflect.Constructor.newInstance(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:36)
javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:95)
javax.xml.ws.spi.Provider.provider(Provider.java:83)
javax.xml.ws.Service.(Service.java:56)
org.me.cli.CalService.(CalService.java:54)
org.apache.jsp.result_jsp._jspService(result_jsp.java:63)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions
Two classes have the same XML type name “address”. Use @XmlType.name and @XmlType.namespace to assign different names to them.
this problem is related to the following location:
at com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Address
at public com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Address com.sun.xml.ws.developer.MemberSubmissionEndpointReference.addr
at com.sun.xml.ws.developer.MemberSubmissionEndpointReference
this problem is related to the following location:
at javax.xml.ws.wsaddressing.W3CEndpointReference$Address
at private javax.xml.ws.wsaddressing.W3CEndpointReference$Address javax.xml.ws.wsaddressing.W3CEndpointReference.address
at javax.xml.ws.wsaddressing.W3CEndpointReference
Two classes have the same XML type name “elements”. Use @XmlType.name and @XmlType.namespace to assign different names to them.
this problem is related to the following location:
at com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Elements
at public com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Elements com.sun.xml.ws.developer.MemberSubmissionEndpointReference.referenceProperties
at com.sun.xml.ws.developer.MemberSubmissionEndpointReference
this problem is related to the following location:
at javax.xml.ws.wsaddressing.W3CEndpointReference$Elements
at private javax.xml.ws.wsaddressing.W3CEndpointReference$Elements javax.xml.ws.wsaddressing.W3CEndpointReference.referenceParameters
at javax.xml.ws.wsaddressing.W3CEndpointReference
com.sun.xml.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:102)
com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:438)
com.sun.xml.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:286)
com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:139)
com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:117)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:211)
javax.xml.bind.ContextFinder.find(ContextFinder.java:372)
javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522)
com.sun.xml.ws.spi.ProviderImpl$2.run(ProviderImpl.java:220)
com.sun.xml.ws.spi.ProviderImpl$2.run(ProviderImpl.java:218)
java.security.AccessController.doPrivileged(Native Method)
com.sun.xml.ws.spi.ProviderImpl.getEPRJaxbContext(ProviderImpl.java:217)
com.sun.xml.ws.spi.ProviderImpl.(ProviderImpl.java:88)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
java.lang.reflect.Constructor.newInstance(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:36)
javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:95)
javax.xml.ws.spi.Provider.provider(Provider.java:83)
javax.xml.ws.Service.(Service.java:56)
org.me.cli.CalService.(CalService.java:54)
org.apache.jsp.result_jsp._jspService(result_jsp.java:63)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.
——————————————————————————–
Apache Tomcat/6.0.13
srinivas said
access with java its working fine but access with jsp gives error initialization error.
org.apache.jasper.JasperException: An exception occurred processing JSP page /result.jsp at line 7
4: String path = request.getContextPath();
5: String basePath = request.getScheme()+”://”+request.getServerName()+”:”+request.getServerPort()+path+”/”;%>
6:
7:
10:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
javax.servlet.ServletException: java.lang.ExceptionInInitializerError
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.result_jsp._jspService(result_jsp.java:73)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.lang.ExceptionInInitializerError
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
java.lang.reflect.Constructor.newInstance(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:36)
javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:95)
javax.xml.ws.spi.Provider.provider(Provider.java:83)
javax.xml.ws.Service.(Service.java:56)
org.me.cli.CalService.(CalService.java:54)
org.apache.jsp.result_jsp._jspService(result_jsp.java:63)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
javax.xml.ws.WebServiceException: Error creating JAXBContext for W3CEndpointReference.
com.sun.xml.ws.spi.ProviderImpl$2.run(ProviderImpl.java:222)
com.sun.xml.ws.spi.ProviderImpl$2.run(ProviderImpl.java:218)
java.security.AccessController.doPrivileged(Native Method)
com.sun.xml.ws.spi.ProviderImpl.getEPRJaxbContext(ProviderImpl.java:217)
com.sun.xml.ws.spi.ProviderImpl.(ProviderImpl.java:88)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
java.lang.reflect.Constructor.newInstance(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:36)
javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:95)
javax.xml.ws.spi.Provider.provider(Provider.java:83)
javax.xml.ws.Service.(Service.java:56)
org.me.cli.CalService.(CalService.java:54)
org.apache.jsp.result_jsp._jspService(result_jsp.java:63)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions
Two classes have the same XML type name “address”. Use @XmlType.name and @XmlType.namespace to assign different names to them.
this problem is related to the following location:
at com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Address
at public com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Address com.sun.xml.ws.developer.MemberSubmissionEndpointReference.addr
at com.sun.xml.ws.developer.MemberSubmissionEndpointReference
this problem is related to the following location:
at javax.xml.ws.wsaddressing.W3CEndpointReference$Address
at private javax.xml.ws.wsaddressing.W3CEndpointReference$Address javax.xml.ws.wsaddressing.W3CEndpointReference.address
at javax.xml.ws.wsaddressing.W3CEndpointReference
Two classes have the same XML type name “elements”. Use @XmlType.name and @XmlType.namespace to assign different names to them.
this problem is related to the following location:
at com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Elements
at public com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Elements com.sun.xml.ws.developer.MemberSubmissionEndpointReference.referenceProperties
at com.sun.xml.ws.developer.MemberSubmissionEndpointReference
this problem is related to the following location:
at javax.xml.ws.wsaddressing.W3CEndpointReference$Elements
at private javax.xml.ws.wsaddressing.W3CEndpointReference$Elements javax.xml.ws.wsaddressing.W3CEndpointReference.referenceParameters
at javax.xml.ws.wsaddressing.W3CEndpointReference
com.sun.xml.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:102)
com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:438)
com.sun.xml.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:286)
com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:139)
com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:117)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:211)
javax.xml.bind.ContextFinder.find(ContextFinder.java:372)
javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522)
com.sun.xml.ws.spi.ProviderImpl$2.run(ProviderImpl.java:220)
com.sun.xml.ws.spi.ProviderImpl$2.run(ProviderImpl.java:218)
java.security.AccessController.doPrivileged(Native Method)
com.sun.xml.ws.spi.ProviderImpl.getEPRJaxbContext(ProviderImpl.java:217)
com.sun.xml.ws.spi.ProviderImpl.(ProviderImpl.java:88)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
java.lang.reflect.Constructor.newInstance(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:36)
javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:95)
javax.xml.ws.spi.Provider.provider(Provider.java:83)
javax.xml.ws.Service.(Service.java:56)
org.me.cli.CalService.(CalService.java:54)
org.apache.jsp.result_jsp._jspService(result_jsp.java:63)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
srinivas said