Re: problem with WSDL file, "jaxrpc compilation exception" in .ear deploy step

From: Merten Schumann <>
Date: Mon, 26 Jul 2004 16:46:51 +0200


continued my task to build a web service with both, WSI compliant and
"old" WSDL interface.

For .war (plain JAX-RPC) it worked in principle, thanx to Bobby's help.

Now I tried a bit to assemble an .ear with an EJB with TWO web service
It seems, that's not allowed.

In the server log I do get at deploy time:
error: java.lang.IllegalStateException: Ejb HelloServiceBeanchen
implements 2 web service endpoints but must only implement 1

Why is that prohibited?

I tried in this webservices.xml file to have two
<webservice-description> elements. Did not work, got the exception.
Then I tried for the one and only <webservice-description> element, to
have there two <port-component> elements. Did not work too.

Now I will try to "outwit" the deploy step and create an additional name
for my EJB mapping to the same implementation class. That's not really
nice, but maybe it works (but I don't think so).

Would be nice to have this "two way" web service in one .ear file,
that's why I'm trying this stuff ... In theory, it should be possible on
the server side to have an instance of my stateless session bean serve
at a given time a client which is using the WSI compliant WSDL and at
another time a client which is using the non-WSI compliant WSDL ...

If I cannot get this working I think I have to put really two
incarnations of my EJB in the .ear and configure an endpoint for each of


> -----Original Message-----
> From: Bobby Bissett - Javasoft [mailto:Robert.Bissett_at_Sun.COM]
> Sent: Wednesday, July 14, 2004 9:57 PM
> To:
> Subject: Re: problem with WSDL file, "jaxrpc compilation
> exception" in .ear deploy step
> Hi all,
> Concerning the addresses not all being transformed when there
> are 2 or
> more ports in the service, the problem is that the
> transformer needs to
> know what the url mapping for each port is in order to transform the
> wsdl file. The service will then have multiple interfaces (i.e.,
> Hello1IF and Hello2IF) and multiple impl classes. After
> generating these
> with wscompile, wsdeploy is used to package everything.
> I already described the jwsdp case, in which you just have to add the
> extra ports to the jaxrpc-ri.xml file before running wsdeploy, and it
> takes care of everything for you.
> In the j2ee case using deploytool (Merten's case), you can
> only add one
> endpoint implementation class at a time in the web module
> wizard. What
> worked for me was to go through the wizard and create the
> service with a
> single impl class in it, and then add the extra one. File -> New Web
> Component, and in WAR Location I selected "Add to Existing
> WAR Module"
> and step through it. You have to enter the namespace and local part
> manually, but it adds the second component to the service for
> you. Then
> you select the component after the wizard finishes and add an
> alias for
> it like with the first one and deploy. After that, both
> addresses in my
> wsdl file were being changed correctly.
> Cheers,
> Bobby

To unsubscribe, e-mail:
For additional commands, e-mail: