Hi Richard,
after some investigation and debug I managed to understand what was
happening about JBWS-1792 and fix it.
As you noticed, my fix to the AS 4.2.3 should not harm anything since it
only makes available the context-params and propagates the jbossws conf
to the JSEArchiveMetaData.
The JBWS-1792 was however failing because of a little bug in the
EndpointMetaData that didn't always set itself into the HandlerMetaData.
For this reason the right classloader was not available when trying to
load the handler class specified into a user provided jaxrpc jbossws
configuration. This of course didn't happen before my fix to the AS
because the right conf was not available ;-) and was instead set only at
the first invocation of the EndpointServlet.
I successfully ran a full test suite over AS 4.2.3 so I've just
committed the fix to the EndpointMetaData. Later I'll revert your change
to the AS since it is not required anymore.
Still have to understand exactly why those tests pass on AS 5.0.
Cheers
Alessio
Richard Opalka ha scritto:
Hi Alessio,
today I was investigating why our JBWS-1792 test is failing on JBoss
AS 4.2.3
(see e.g.:
http://jbws.dyndns.org:8180/hudson/job/Native-Core-AS-4.2.3/29/testReport/)
I discovered, that this problem is caused by your commit in JBoss AS
4.2.3 branch:
Index:
src/main/org/jboss/wsf/container/jboss42/JSEArchiveMetaDataAdapter.java
===================================================================
---
src/main/org/jboss/wsf/container/jboss42/JSEArchiveMetaDataAdapter.java
(revision 68729)
+++
src/main/org/jboss/wsf/container/jboss42/JSEArchiveMetaDataAdapter.java
(revision 68730)
@@ -81,6 +81,11 @@
webMetaData.setServletClassNames(getServletClassMap(wmd));
webMetaData.setConfigName(wmd.getConfigName());
webMetaData.setConfigFile(wmd.getConfigFile());
+ Map contextParams = wmd.getContextParams();
+ if (contextParams.containsKey("jbossws-config-name"))
+
webMetaData.setConfigName((String)contextParams.get("jbossws-config-name"));
+ if (contextParams.containsKey("jbossws-config-file"))
+
webMetaData.setConfigFile((String)contextParams.get("jbossws-config-file"));
webMetaData.setSecurityDomain(wmd.getSecurityDomain());
webMetaData.setPublishLocationAdapter(getPublishLocationAdpater(wmd));
webMetaData.setSecurityMetaData(getSecurityMetaData(wmd.getSecurityContraints()));
I created conditional statement there to do this stuff for JAX-WS
endpoints only on JBoss AS 4.2.3.
However this needs further investigation and allows JAX-RPC endpoints
to work properly
on JBoss AS 4.2.3 as well with your fix.
Just for your information this JAX-RPC test passes on JBoss AS 5.0.0.