Bug 777594 (SOA-102)

Summary: Missing BasicInvocationContext class
Product: [JBoss] JBoss Enterprise SOA Platform 4 Reporter: Martin Vecera <mvecera>
Component: JBossWSAssignee: trev <tkirby>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: urgent Docs Contact:
Priority: urgent    
Version: 4.2 IR4CC: tom.fennelly
Target Milestone: ---   
Target Release: 4.2 IR6   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/SOA-102
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
soa-standalone
Last Closed: 2007-11-22 10:59:06 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Martin Vecera 2007-11-06 15:12:52 UTC
Date of First Response: 2007-11-12 09:32:39
project_key: SOA

While running quickstart performance test 6 (SOAPProcessor, based on webservice_producer) I met this problem:
java.lang.NoClassDefFoundError: org/jboss/wsf/spi/invocation/BasicInvocationContext

This class should be in server/*/lib/jbossws-spi.jar. The file is there, but the class is is really missing in IR4.

Comment 1 Len DiMaggio 2007-11-08 19:14:53 UTC
Link: Added: This issue related SOA-84


Comment 2 Martin Vecera 2007-11-12 07:46:52 UTC
Link: Added: This issue is duplicated by SOA-119


Comment 3 Thomas Diesler 2007-11-12 14:32:39 UTC
Usage of this class is an error, it is not part of jbossws-spi.jar

Do do you have a stack trace that shows us the client of that API?

Comment 4 trev 2007-11-12 14:52:43 UTC
from #jbosssoa
<jpechane_wfh> tkirby ESB is WS client in this case
<mvecera> tkirby: I don't have it, but I should be able to reproduce it...

I've asked mcevera to add the details to this jira, but it may be quicker to ask your questions directly on #jbosssoa


Comment 5 Martin Vecera 2007-11-13 14:12:34 UTC
Server side:

16:28:38,606 WARN  [ServiceController] Problem starting service jboss.esb:deployment=Performance6.esb
java.lang.NoClassDefFoundError: org/jboss/wsf/spi/invocation/BasicInvocationContext
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:242)
        at org.jboss.soa.esb.util.ClassUtil.forName(ClassUtil.java:65)
        at org.jboss.soa.esb.listeners.config.ServicePublisher.getConractPublisher(ServicePublisher.java:151)
        at org.jboss.soa.esb.listeners.config.ServicePublisher.addServicePublishers(ServicePublisher.java:107)
        at org.jboss.soa.esb.listeners.config.Configuration.create(Configuration.java:120)
        at org.jboss.soa.esb.listeners.config.JBoss4ESBDeployment.startService(JBoss4ESBDeployment.java:82)
        at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
        at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
        at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
        at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
        at $Proxy0.start(Unknown Source)
        at org.jboss.system.ServiceController.start(ServiceController.java:417)
        at org.jboss.system.ServiceController.start(ServiceController.java:435)
        at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
        at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
        at $Proxy4.start(Unknown Source)
        at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)
        at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
        at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1015)
        at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
        at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
        at org.jboss.deployment.MainDeployer.redeploy(MainDeployer.java:566)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
        at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
        at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
        at sun.reflect.GeneratedMethodAccessor146.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.jmx.connector.invoker.InvokerAdaptorService.invoke(InvokerAdaptorService.java:266)
        at sun.reflect.GeneratedMethodAccessor103.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
        at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
        at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
        at org.jboss.jmx.connector.invoker.SerializableInterceptor.invoke(SerializableInterceptor.java:74)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
        at org.jboss.invocation.jrmp.server.JRMPProxyFactory.invoke(JRMPProxyFactory.java:179)
        at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
        at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:818)
        at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:419)
        at sun.reflect.GeneratedMethodAccessor144.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
        at sun.rmi.transport.Transport$1.run(Transport.java:153)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
        at java.lang.Thread.run(Thread.java:595)


Comment 6 Martin Vecera 2007-11-13 14:14:44 UTC
Client side:

org.jboss.soa.esb.qa.framework.TestRunException: Incomplete Deployment listing:

--- MBeans waiting for other MBeans ---
ObjectName: jboss.esb:deployment=Performance6.esb
  State: FAILED
  Reason: java.lang.NoClassDefFoundError: org/jboss/wsf/spi/invocation/BasicInvocationContext
  I Depend On:
    jboss.esb.quickstart.destination:service=Queue,name=quickstart_performance6_esb
    jboss.esb.quickstart.destination:service=Queue,name=quickstart_performance6_esb_reply
    jboss.esb:deployment=jbossesb.esb
    jboss.esb.quickstart.destination:service=Queue,name=quickstart_performance6_gw
    jboss.esb:deployment=soap.esb

--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: jboss.esb:deployment=Performance6.esb
  State: FAILED
  Reason: java.lang.NoClassDefFoundError: org/jboss/wsf/spi/invocation/BasicInvocationContext
  I Depend On:
    jboss.esb.quickstart.destination:service=Queue,name=quickstart_performance6_esb
    jboss.esb.quickstart.destination:service=Queue,name=quickstart_performance6_esb_reply
    jboss.esb:deployment=jbossesb.esb
    jboss.esb.quickstart.destination:service=Queue,name=quickstart_performance6_gw
    jboss.esb:deployment=soap.esb


	at org.jboss.soa.esb.qa.framework.ESBTestServices.deployESBApplication(ESBTestServices.java:72)
	at org.jboss.soa.esb.qa.framework.ESBPerformanceTestServices.deployESBApplication(ESBPerformanceTestServices.java:151)
	at org.jboss.soa.esb.qa.framework.ESBPerformanceTestServices.executePerformanceTest(ESBPerformanceTestServices.java:290)
	at org.jboss.soa.esb.qa.tests.performance.performance6.Performance6JMSTest.testWSConsumerJMSNoReturn(Performance6JMSTest.java:46)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:604)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:470)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:564)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:830)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
	at org.testng.TestRunner.runWorkers(TestRunner.java:678)
	at org.testng.TestRunner.privateRun(TestRunner.java:624)
	at org.testng.TestRunner.run(TestRunner.java:495)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:300)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:295)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:275)
	at org.testng.SuiteRunner.run(SuiteRunner.java:190)
	at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:792)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:765)
	at org.testng.TestNG.run(TestNG.java:699)
	at org.testng.TestNG.privateMain(TestNG.java:824)
	at org.testng.TestNG.main(TestNG.java:802)
Caused by: Incomplete Deployment listing:

--- MBeans waiting for other MBeans ---
ObjectName: jboss.esb:deployment=Performance6.esb
  State: FAILED
  Reason: java.lang.NoClassDefFoundError: org/jboss/wsf/spi/invocation/BasicInvocationContext
  I Depend On:
    jboss.esb.quickstart.destination:service=Queue,name=quickstart_performance6_esb
    jboss.esb.quickstart.destination:service=Queue,name=quickstart_performance6_esb_reply
    jboss.esb:deployment=jbossesb.esb
    jboss.esb.quickstart.destination:service=Queue,name=quickstart_performance6_gw
    jboss.esb:deployment=soap.esb

--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: jboss.esb:deployment=Performance6.esb
  State: FAILED
  Reason: java.lang.NoClassDefFoundError: org/jboss/wsf/spi/invocation/BasicInvocationContext
  I Depend On:
    jboss.esb.quickstart.destination:service=Queue,name=quickstart_performance6_esb
    jboss.esb.quickstart.destination:service=Queue,name=quickstart_performance6_esb_reply
    jboss.esb:deployment=jbossesb.esb
    jboss.esb.quickstart.destination:service=Queue,name=quickstart_performance6_gw
    jboss.esb:deployment=soap.esb


	at org.jboss.deployment.MainDeployer.checkIncompleteDeployments(MainDeployer.java:1385)
	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:785)
	at org.jboss.deployment.MainDeployer.redeploy(MainDeployer.java:566)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at sun.reflect.GeneratedMethodAccessor146.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.jboss.jmx.connector.invoker.InvokerAdaptorService.invoke(InvokerAdaptorService.java:266)
	at sun.reflect.GeneratedMethodAccessor103.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
	at org.jboss.jmx.connector.invoker.SerializableInterceptor.invoke(SerializableInterceptor.java:74)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.invocation.jrmp.server.JRMPProxyFactory.invoke(JRMPProxyFactory.java:179)
	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:818)
	at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:419)
	at sun.reflect.GeneratedMethodAccessor144.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
	at sun.rmi.transport.Transport$1.run(Transport.java:153)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
	at java.lang.Thread.run(Thread.java:595)


Comment 7 Tom Fennelly 2007-11-13 15:53:06 UTC
Thomas....

org.jboss.wsf.spi.invocation.BasicInvocationContext is used by the ESB's org.jboss.soa.esb.actions.soap.SOAPProcessor class.  It uses it as the InvocationContext instance supplied in calls to org.jboss.wsf.spi.invocation.RequestHandler.handleRequest(...) i.e. for invoking the webservice endpoint.

Which InvocationContext impl should we be using?  If BasicInvocationContext is not part of the public API, does that imply that RequestHandler is also not part of the public API (since they're in the same package of the same jar jbossws-spi.jar)?  If so, what should we be using to invoke webservice endpoints?  We were pretty sure we were using the correct part of the API for this :-(

Trevor/Martin...

What exactly is your env i.e. ESB Server or AS... version of JBossWS etc?

Comment 8 Martin Vecera 2007-11-14 09:32:56 UTC
soa-standalone-4.2.0.IR4

ESB server:
[Server] JBoss (MX MicroKernel) [4.2.1.GA (build: SVNTag=JBoss_4_2_1_GA date=200707131605)] Started in 38s:67ms

JBossWS, (soa-standalone-4.2.0.IR4/server/default/deploy/jbossws.sar/META-INF/MANIFEST.MF):
Manifest-Version: 1.2
Ant-Version: Apache Ant 1.7.0
Created-By: 1.5.0_12-b04 (Sun Microsystems Inc.)
Specification-Title: JBossWS
Specification-Version: jbossws-2.0
Specification-Vendor: JBoss (http://www.jboss.org)
Implementation-Title: JBoss Web Services - Native
Implementation-URL: http://www.jboss.org/products/jbossws
Implementation-Version: jbossws-native-2.0.1.SP2 (build=200711011842)
Implementation-Vendor: JBoss Inc.
Implementation-Vendor-Id: http://www.jboss.org
Class-Path: jbossws-spi.jar jbossws-common.jar jbossws-framework.jar jboss-jaxrpc.jar jboss-jaxws.jar jboss-saaj.jar  activation.jar commons-logging.jar concurrent.jar javassist.jar jaxb-api.jar jaxb-impl.jar mail.jar jboss-remoting.jar jboss-xml-binding.jar policy.jar stax-api.jar wsdl4j.jar

JBossWS SPI, (soa-standalone-4.2.0.IR4/client/jbossws-spi.jar/MANIFEST.MF):
Manifest-Version: 1.2
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_12-b04 (Sun Microsystems Inc.)
Specification-Title: JBossWS
Specification-Version: jbossws-2.0
Specification-Vendor: JBoss (http://www.jboss.org)
Implementation-Title: JBoss Web Services - SPI
Implementation-URL: http://www.jboss.org/products/jbossws
Implementation-Version: jbossws-1.0.0.GA (build=200708171551)
Implementation-Vendor: JBoss Inc.
Implementation-Vendor-Id: http://www.jboss.org
Class-Path: getopt.jar

Comment 9 trev 2007-11-14 10:37:24 UTC
<tkirby> tfennelly: I was told it had to be 2.0.1CP2, that is also the version in the EAP based server
<marklittle> JBossWS 2.0.1CP2 is the version we should be using in the platform.
<marklittle> +1
<marklittle> That's been the case for at least the past 2 months.
<tfennelly> lol
<tfennelly> ok
<marklittle> Even though CP2 wasn't officially available until about 4 weeks ago.
<tfennelly> well we need to fix the ESB to work with then I suppose
<tfennelly> since 2.0.0 and 2.0.1 are not compatible
<tfennelly> sorry
<tfennelly> brb
<marklittle> I thought Kev had pulled 2.0.1SP2 (publicly available equivalent)?
<marklittle> kconner: care to comment?
<kconner> Sorry, let me catch up
<tkirby> tfennelly:mvecera has added a comment to the jira abot versions
<kconner> marklittle, tfennelly, tkirby: No, I haven't pulled 2.0.1SP2 into the ESB project yet.  The move with WS only happened very recently, not in time for 4.2.1GA
<kconner> If there is a compatibility issue with this then we need to look at bringing it in though
<kconner> marklittle: I thought 2.0.0 and 2.0.1 were supposed to be compatible at the SPI level though, is this not the case?
<tfennelly> well, not as far as we're using the SPI
<tfennelly> apparently not
<tfennelly> so suppose the question is.. what is in/out of the SPI
<kconner> tfennelly: Okay, so this is something else that has changed then
<tfennelly> ??
<tfennelly> right
<kconner> I thought the SPI jar was everything public :)
<kconner> The implementation is supposed to be somewhere else
<tfennelly> well the stuff we're using is in the SPI
<kconner> marklittle: any comments on compatibility?
<tfennelly> as in jbossws-spi.jar
<tfennelly> Thomas was saying that we shouldn't be using one of those classes though
<kconner> tfennelly That's the public API AFAICT, I do not think it should be changing in an incompatible way
<tfennelly> Id unno... we should wait and hear Thomas' angle on it I suppose
<tfennelly> (I dunno)
<marklittle> kconner: no, comments on which version of JBossWS ESB was last built against ;-)
<tfennelly> it was last built/tested against 2.0.0GA
<tfennelly> we tried 2.0.1.x some time back, but ran into compatibility issues... it was bounced back to the JBossWS team after that
<marklittle> yes, that's why CP2 came out ;-)
<kconner> Sure, I thought SP2 was supposed to have fixed all that
<tfennelly> right
<marklittle> But I thought SP2 was last used because I remember Kev asking me how he could get access to CP2.
<tfennelly> I heard nothing about that since then
<kconner> marklittle: that was just before the 4.2.1GA release and was concerned with including it in the release for the CP
<kconner> The aim was to help the platform guyd
<marklittle> kconner: ok
<marklittle> CP2 should have put back the old interfaces that 2.0.1 broke from 2.0.0.
<marklittle> If that is not the case then there will be a CP3
<kconner> marklittle: The main reason for making that change was to remove the JAXB processing we have to do in the project
<kconner> I sat down with Trev and fixed the SOA branch so that it was no longer necessary
<kconner> tfennelly: What do you know about 2.0.1SP2?  Have you had a chance to look at it?
<tfennelly> kconner: sorry, flicked away there for a min...
<tfennelly> eh... not a lot apart from what I saw in that stack tract i.e. that one of the classes in the spi jar has been removed
<tfennelly> and we were using that class
<tfennelly> Thomas says we shouldn't have been using it
<kconner> lol, which begs the question 'why was it in the SPI then?' :)
<tfennelly> you could ask that question I suppose
<tfennelly> :-)
<tfennelly> probably easiest if we just sort it out I guess
<tfennelly> I don't suppose it'll be all that difficult (assuming not too much else has changed)
<marklittle> If it was in 2.0.0 then it HAS TO BE IN 2.0.1CP2 or there will be a CP3.
<tfennelly> we do need a clearer picture on what is in/out of the SPI
<marklittle> If it has been removed and Thomas confirms this, then let me know and I will discuss it with him further.
<tfennelly> i.e. what we should be using
<kconner> marklittle: we seem to have two issues here, one is compatibility (which is broken)
<tfennelly> and shouldn't (more to the point)
<kconner> the second is just getting this working
<kconner> We should be moving to SP2 in any case, to be more inline with the platform, so now seems to be a good point to try it out
<kconner> tfennelly: What are your feelings over this?  You know the integration better than anyone
<tfennelly> kconner: let's go with it
<tfennelly> 2.0.1.CP2 that is
<kconner> tfennelly: We need to take SP2 into the project but they should be the same
<kconner> tfennelly: Good luck ;)
<tfennelly> OK.
<tfennelly> OK... I just don't wanna integrate SP2 to then find CP2 is the "same", but we get screwed by some packaging issue
<kconner> tfennelly: The packaging will have to be handled in the SOA Platform, I can work with Trev to fix any issues that may come up


Comment 10 Thomas Diesler 2007-11-14 11:35:40 UTC
As of jbossws-spi-1.0.0, you should be using

org.jboss.wsf.spi.invocation.InvocationContext

Comment 11 Mark Little 2007-11-14 11:44:54 UTC
Thomas, unless this was previously documented as a non-public API then it cannot be removed in the 2.0.x codebase. You can support it elsewhere, but you need to be backwardly compatible. Thanks.

Comment 12 Thomas Diesler 2007-11-14 12:01:21 UTC
jbossws-2.0.1 was the first release that used jbossws-spi-1.0.0.GA as a
standalone project. Before that the SPI was still work in progress and
an integral part of the jbossws core code base.

I understand your backward compatibility concerns and yes, everything in
jbossws-spi-1.0.0.GA is public and can be used (from that release
onward)

I hope we can resolve possible API/SPI incompatibility issues between
2.0.0 and 2.0.1 in an unbureaucratic way and jbossws-spi-1.0.0.GA can be
our baseline to move forward

Alternatively, we would need to create a SP branch for jbossws-spi-1.0.0 where we restore the API that the ESB is using.
For many a reason I would recommend the ESB uses the 1.0.0.GA SPI/API

Comment 13 Tom Fennelly 2007-11-14 12:46:22 UTC
Link: Added: This issue depends JBESB-1336


Comment 14 Mark Little 2007-11-14 13:26:51 UTC
Thomas, this isn't bureaucratic: we have a message around the platforms that there will be no backward compatibility issues within minor version numbers of the individual projects. Unless you made this change because of a bug, then this has to be changed as well.

If something was available in JBossWS 2.0.0GA it needs to continue to be available in JBossWS 2.0.1GA and CPs. We've been over this before and if the other projects can work within this approach I'd expect the same from your project.

What is the problem with adding jbossws-spi-1.0.0GA and maintaining backward compatibility with JBossWS 2.0.0GA?

Comment 16 Thomas Diesler 2007-11-14 13:50:14 UTC
JBoss Forum Reference: Added: http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4104564#4104564


Comment 17 Heiko Braun 2007-11-15 16:03:21 UTC
The RequestHandler implementation that's being used with native carries an implementation error: 
It does cast the InvocationContext to a concrete implementation instead of relying on the interface. This forces clients like the ESB to work with that particular implementation, ServletRequestHandler in this case.

Comment 18 Heiko Braun 2007-11-15 16:04:49 UTC
Here's the code:

public class RequestHandlerImpl implements RequestHandler
{

[...]

public void handleWSDLRequest(Endpoint endpoint, OutputStream outputStream, InvocationContext context)
   {
[...]
      ServletRequestContext reqContext = (ServletRequestContext)context;
      HttpServletRequest req = reqContext.getHttpServletRequest();
[...]

Comment 19 Heiko Braun 2007-11-15 16:29:12 UTC
Link: Added: This issue depends JBWS-1909


Comment 20 Heiko Braun 2007-11-15 16:29:49 UTC
JBWS-1909 contains a workaround description that's SPI compliant

Comment 21 Mark Little 2007-11-16 14:08:35 UTC
Please confirm updates when creating the release.

Comment 22 Martin Vecera 2007-11-22 10:59:06 UTC
Verified with IR6.

Comment 23 Len DiMaggio 2007-11-26 20:34:40 UTC
Link: Removed: This issue related SOA-84