Monday June 18, 2007
Fabian explained how WSIT features can be configured on Java SE 6 Endpoint API exposed as part of JAX-WS 2.1. In this blog, I start with a Reliable Messaging-enabled endpoint developed using NetBeans IDE 5.5.1 and WSIT plug-in and then provide detailed steps, along with code, to deploy it in Java SE 6.
jre\lib\endorsed'
directory.Web Pages', 'WEB-INF'. The
configuration file be named something similar to 'wsit-server.HelloWebService.xml'
following the format 'wsit-<packageName>.<ServiceName>.xml'.
Here is how the config file looks like:Copy this config file by the name
<?xml version="1.0" encoding="UTF-8"?> <definitions
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" name="HelloWebServiceService" targetNamespace="http://server/" xmlns:tns="http://server/" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsaws="http://www.w3.org/2005/08/addressing" xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm/policy">
<message name="sayHello"/>
<message name="sayHelloResponse"/>
<portType name="HelloWebService">
<wsdl:operation name="sayHello">
<wsdl:input message="tns:sayHello"/>
<wsdl:output message="tns:sayHelloResponse"/>
</wsdl:operation>
</portType>
<binding name="HelloWebServicePortBinding" type="tns:HelloWebService">
<wsp:PolicyReference URI="#HelloWebServicePortBindingPolicy"/>
<wsdl:operation name="sayHello">
<wsdl:input/>
<wsdl:output/>
</wsdl:operation>
</binding>
<service name="HelloWebServiceService">
<wsdl:port name="HelloWebServicePort" binding="tns:HelloWebServicePortBinding"/>
</service>
<wsp:Policy wsu:Id="HelloWebServicePortBindingPolicy">
<wsp:ExactlyOne>
<wsp:All>
<wsaws:UsingAddressing xmlns:wsaws="http://www.w3.org/2006/05/addressing/wsdl"/>
<wsrm:RMAssertion/>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
</definitions>
wsit-server.HelloWebService.xml in META-INF directory in your classpath.package server;As you see, this is a plain JAX-WS Web service endpoint class.
import javax.jws.*;
@WebService(targetNamespace="http://server/")
public class HelloWebService {
@WebMethod
public String hello(@WebParam(name="name")String text) {
return "Hello " + text;
}
}
package server;
import java.io.IOException;
import javax.xml.ws.Endpoint;
public class Main {
private static final int PORT = 58888;
private static final String HOST = "localhost";
public static void main(String[] args) {
Endpoint endpoint = Endpoint.create(new HelloWebService());
String address = "http://" + HOST + ":" + PORT + "/";
endpoint.publish(address);
System.out.println("Endpoint hosted at ... " + address);
}
}
"\Program Files\Java\jdk1.6.0_01\bin\javac.exe" -d . server\*.java
"\Program Files\Java\jdk1.6.0_01\bin\wsgen.exe" -cp . server.HelloWebService
java -classpath .;\jax-ws-latest-wsit\lib\webservices-rt.jar server.Main
java -classpath .;C:\testbed\jax-ws-latest-wsit\lib\webservices-rt.jar server.Main
Jun 18, 2007 4:46:34 PM [com.sun.xml.ws.policy.jaxws.PolicyConfigParser] parse
INFO: WSP1049: Loaded WSIT configuration from file:
file:/C:/workarea/wsit/javase6/META-INF/wsit-server.HelloWebService.xml
Jun 18, 2007 4:46:34 PM [com.sun.xml.ws.tx.common.TxMapUpdateProvider] update
INFO: WSTX-COMMON-2005: running in a non Java EE container; disable mapping of Container Managed Transaction EJB to WS-AT Policy assertions due to 'javax/ejb/TransactionManagement'
Endpoint hosted at ... http://localhost:58888/
That's it, the endpoint now deployed at 'http://localhost:58888/MyService?wsdl'
is Reliable Messaging enabled. This endpoint can be invoked using any of the
methods
shown here.
Technorati: webservices wsit jax-ws glassfish javase6
Posted by Arun Gupta in webservices | Comments[9]
|
|
|
|
| Week 18 Mileage - 6 more weeks
Mon: Rest
Tue: 7 miles
Wed: 8.5 miles
Thu: 7 miles
Fri: Rest
Sat: Rest
Sun: 23.3 miles
With Summer just around the corner, here are good reads on hydration:
Technorati: running fitness runninglog
Posted by Arun Gupta in Running | Comments[0]
|
|
|
|
| Debug application code deployed on GlassFish using NetBeans ?
|
|
One of my friends asked how to debug a Servlet deployed on Java Application Platform SDK Update2. Debugging Servlet is no different than debugging any application on the Application Server. However searching on java.sun.com gave really old results. Top-level Search functionality is missing on glassfish.dev.java.net which hopefully will be fixed soon. Googling finally showed Debugging Applications but this is again command-line. So I decided to write a short blog describing the simple steps involved to debug a server-side application using NetBeans/GlassFish. Application Platform SDK Update2 contains Sun Java System Application Server 9.1 Beta2 which is equivalent to GlassFish V2 b41d. |
Runtime' Server, then you need to
start the Application Server in debug mode by right-clicking on the Server
instance and selecting 'Start in Debug Mode'.

index.jsp'.
However if you need to debug your own Servlet then you need to configure it
as the default page by right-clicking on Project, selecting Properties, Run
category and specify the relative URL of the Servlet as shown below ('/NewServlet'
in this case):
Debug Project' as
shown below:
processRequest' method and watch the debug output in 'Debugger
Console', 'Local Variables', 'Call Stack' and much more.

Check NetBeans Debugging Applications for more information.
Technorati: debugging netbeans glassfish
Posted by Arun Gupta in webservices | Comments[0]
|
|
|
|
|
Today's Page Hits: 4308
Total # blog entries: 1002