Choose → , select Java Web
from the Web category and click
Next.
Name the project, for example,
CalculatorWSServletClient, and click
Finish.
Right-click the
CalculatorWSServletClient node and
select → .
The New Web Service Client
window displays.
Note
NetBeans submenus are dynamic, so the
Web Service Client option may not
appear. If you do not see the Web Service
Client option, select → → → .
Select the WSDL
URL option.
Cut and paste the URL of the
web service that you want the client to consume into the
WSDL URL field.
For example, here is the URL for the
CalculatorWS
web service:
Example 8.2.
http://localhost:8080/CalculatorApplication/CalculatorWSService?wsdl
When Jakarta XML Web Service implementation generates the web service,
it appends Service
to the class name by default.
Type
org.me.calculator.client
in the
Package field, and click
Finish.
Right-click the
CalculatorWSServletClient project
node and choose → .
Name the servlet
ClientServlet
, specify the package name, for
example, org.me.calculator.client
and click
Finish.
To make the servlet the entry
point to your application, right-click the
CalculatorWSServletClient project
node, choose , click
Run, type /ClientServlet
in the Relative URL field, and click
OK.
If
ClientServlet.java
is not already open in the
Source Editor, open
it.
In the Source
Editor, remove the line that comments out the
body of the processRequest
method.
This is the start-comment line that starts the
section that comments out the code:
Example 8.3.
/* TODO output your page here
Delete the end-comment line
that ends the section of commented out code:
Add some empty lines after the
following line:
Example 8.5.
out.println("<h1>Servlet ClientServlet at " +
request.getContextPath () + "</h1>");
Right-click in one of the
empty lines that you added, then choose → .
The Select Operation to Invoke
dialog box appears.
Browse to the Add
operation and click OK.
The processRequest
method is as
follows, with bold indicating code added by the
IDE:
Example 8.6.
protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws
ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet ClientServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet ClientServlet at " + request
.getContextPath() + "</h1>");
try { // Call Web Service Operation
org.me.calculator.client.CalculatorWS port = service
.getCalculatorWSPort();
// TODO initialize WS operation arguments here
int i = 0;
int j = 0;
// TODO process result here
int result = port.add(i, j);
out.println("Result = " + result);
} catch (Exception ex) {
// TODO handle custom exceptions here
}
out.println("</body>");
out.println("</html>");
out.close();
}
Change the values for
int i
and int j
to other
numbers, such as 3 and 4.
Add a line that prints out an
exception, if an exception is thrown.
The try/catch
block is as follows (new
and changed lines from this step and the previous step are
highlighted in bold text):
Example 8.7.
try { // Call Web Service Operation
org.me.calculator.client.CalculatorWS port = service
.getCalculatorWSPort();
// TODO initialize WS operation arguments here
int i = 3;
int j = 4;
// TODO process result here
int result = port.add(i, j);
out.println("<p>Result: " + result);
} catch (Exception ex) {
out.println("<p>Exception: " + ex);
}
Save
ClientServlet.java
.
Right-click the project node
and choose .
The server starts (if it was not running already),
the application is built, deployed, and run. The browser
opens and displays the calculation result.