ModuleException http:101216 on WebLogic

A number of people have asked about the ‘ModuleException: [HTTP:101216]Servlet:’ error I came across as part of the multi-platform Dice Service example. The experiences are covered in three (first problem, second problem, solved) separate articles which I will collate and summerise here.

Use ant to build web app
Some JEE 5 containers allow you to define your annotated classes and then drop them in an ‘autodeploy’ folder. Not with WebLogic Server v10 though, an ant script is required to do some more work on the web application. Interestingly, the WLS documentation does not refer to autodeploy for web services, in fact according to the WLS Web Service documentation a weblogic ant task ‘JwscTask’ is needed to compile the annotated web service and produce the necessary WAR and EAR for deployment.

Without the JwscTask, simply dropping a JAX-WS web app in the deplopyment folder will give you an deployment error like this:


The deployment error is:
weblogic.application.ModuleException:
[HTTP:101216]Servlet: "DiceServicePort"
failed to preload on startup in Web application:
"WebServices.war".
javax.servlet.ServletException: Servlet class:
'soastation.jaxwsdice.Dice' does not implement
javax.servlet.Servlet

Tell JwscTask the type
Not only is an ant script required to invoke weblogic.wsee.tools.anttasks.JwscTask but when using it with JAX-WS web services you must set the type attribute. The guidelines in the WLS documentation states that the ant tasks need to have a type=”JAXWS” attribute set. Without this, WLS will treat the web service as a JAX-RPC service.







Summary
To deploy JAX-WS web services on WebLogic Server v10 use JwscTask, with type=”JASWS”, in an ant script. Of course, if you are going to the effort of putting an ant script together to build the web application, it might as well have it deploy the web app too.

6 thoughts on “ModuleException http:101216 on WebLogic

  1. I deployed an EAR file that worked fine in WLS 10.3. I then created a new EAR on my laptop and deployed it. It didn't work. I deleted the entire domains folder, built a new domain, and then tried to deploy the original EAR file. Now the deploy fails with the http:101216. Any ideas?

    Like

  2. Hello When I generated webservices, I see that weblogic jaxws ant task has added Httpservlet as String to webservice name. Could you please let me know how to fix this ?

    Like

  3. I'm working off memory, but do remember that different containers had different default service name algorithms. Try specifying the serviceName you want to have in the WebService annotation.For example:@WebService(serviceName=”Dice”)

    Like

  4. using type=”JAXWS” results in generating an EAR. But when you deploy it in WL10.2 the state of the webservice is shown as 'not currently available'. Even if you redeploy doesn't make a difference.I notice that in the web.xml a servlet has been defined that has the same classname as the class that was annotated with @WebService. I want to know1. whether this is converted to a servlet by jwsc task ?2. reason for the generated webservice not starting up?

    Like

  5. Hi NEO, jwsc will generate data binding artifacts and deployment descriptors so that the annotated class operates as a weblogic web service. If it is not starting up, check the logs, perhaps there is something missing in the classpath. I haven't looked at this example in a while, so will verify it on WLS 10.3.

    Like

Leave a Reply to Peter O'Brien Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s