[rules-users] BRMS on 1.4 using Retroweaver

Paul Browne paulb at firstpartners.net
Fri Oct 19 09:23:27 EDT 2007


Markus,

Couple of Questions:
a) What version of Websphere are you using
b) Which JDK are you using - Sun or IBM?
c) How much access to do you to the WS production and Dev servers ; i.e. 
will you be able to change security policies, replace core server jars 
with more up to date versions?

My gut feeling is that you have 3 choices:
1) Try to 'retrofit' the BRMS into a previous JVM / Websphere version. 
No guarantee that it will work nor that the changes needed will render 
the production server unstable. You need three changes: Retroweaver the 
code to 1.4, Add JSF to the App Server and overcome any differences 
between the IBM and the Sun JDK. One change you might attempt; to make 
three is madness!
2) Deploy BRMS on Tomcat / JBoss. It might go against corporate policy, 
but either the business needs the BRMS functionality enough to accept 
this, or they will *have* to choose options 1 or 3.
3) Use an alternative means for business users to write rules; e.g. 
Decision Tables or train user in the use of the Drools IDE.

None of these are ideal. As bad as options 2 and 3 are, number 1 is even 
worse; you could waste a lot of time (no guarantee of success) and very 
quickly find yourself with an App Server that IBM will refuse to support 
:-(.

Paul


Markus Helbig wrote:
> And here the next one (i removed asm-1.5.3 so that there's just asm-3.0):
>
> [19.10.07 10:22:10:791 CEST] 00000034 WebApp        E   SRVE0026E:
> [Servlet-Fehler]-[/index.jsp]: java.lang.IllegalStateException: No
> Manager could be created, make sure the Component exists in
> application scope
> 	at org.jboss.seam.core.Manager.instance(Manager.java:269)
> 	at org.jboss.seam.web.ContextFilter.doFilter(ContextFilter.java:51)
> 	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
> 	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
> 	at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82)
> 	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:759)
> 	at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
> 	at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:204)
> 	at com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor.handleRequest(JSPExtensionProcessor.java:254)
> 	at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3071)
> 	at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:236)
> 	at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:210)
> 	at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1958)
> 	at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:98)
> 	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
> 	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
> 	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:288)
> 	at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
> 	at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
> 	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
> 	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
> 	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
> 	at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
> 	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
>
>
>
> 2007/10/19, Markus Helbig <mhelbig81 at googlemail.com>:
>   
>> Ok here i have the stacktrace when starting the application:
>>
>> ---Original exception---
>> java.lang.ClassFormatError: (org/jboss/seam/core/package-info) class
>> name is invalid at offset=0
>>         at java.lang.ClassLoader.defineClassImpl(Native Method)
>>         at java.lang.ClassLoader.defineClass(ClassLoader.java:213)
>>         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:147)
>>         at com.ibm.ws.classloader.CompoundClassLoader._defineClass(CompoundClassLoader.java:518)
>>         at com.ibm.ws.classloader.CompoundClassLoader.findClass(CompoundClassLoader.java:469)
>>         at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:365)
>>         at java.lang.ClassLoader.loadClass(ClassLoader.java:584)
>>         at org.jboss.seam.deployment.NamespaceScanner.getPackage(NamespaceScanner.java:70)
>>         at org.jboss.seam.deployment.NamespaceScanner.handleItem(NamespaceScanner.java:51)
>>         at org.jboss.seam.deployment.Scanner.handleArchive(Scanner.java:117)
>>         at org.jboss.seam.deployment.Scanner.scan(Scanner.java:96)
>>         at org.jboss.seam.deployment.NamespaceScanner.getPackages(NamespaceScanner.java:34)
>>         at org.jboss.seam.init.Initialization.addNamespaces(Initialization.java:590)
>>         at org.jboss.seam.init.Initialization.<init>(Initialization.java:80)
>>         at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:33)
>>         at com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:1434)
>>         at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:411)
>>         at com.ibm.ws.webcontainer.webapp.WebGroup.addWebApplication(WebGroup.java:117)
>>         at com.ibm.ws.webcontainer.VirtualHost.addWebApplication(VirtualHost.java:128)
>>         at com.ibm.ws.webcontainer.WebContainer.addWebApp(WebContainer.java:939)
>>         at com.ibm.ws.webcontainer.WebContainer.addWebApplication(WebContainer.java:892)
>>         at com.ibm.ws.runtime.component.WebContainerImpl.install(WebContainerImpl.java:167)
>>         at com.ibm.ws.runtime.component.WebContainerImpl.start(WebContainerImpl.java:391)
>>         at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1245)
>>         at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1067)
>>         at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:547)
>>         at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:751)
>>         at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:909)
>>         at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:1429)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
>>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
>>         at java.lang.reflect.Method.invoke(Method.java:391)
>>         at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1366)
>>         at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1012)
>>         at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:233)
>>         at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:128)
>>         at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:86)
>>         at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:128)
>>         at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:128)
>>         at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:167)
>>         at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1249)
>>         at com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:990)
>>         at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
>>         at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:906)
>>         at com.ibm.ws.console.core.mbean.MBeanHelper.invoke(MBeanHelper.java:186)
>>         at com.ibm.ws.console.appdeployment.ApplicationDeploymentCollectionAction.execute(ApplicationDeploymentCollectionAction.java:484)
>>         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
>>         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:275)
>>         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1486)
>>         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:528)
>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>>         at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572)
>>         at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1521)
>>         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:113)
>>         at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82)
>>         at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:759)
>>         at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:334)
>>         at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1070)
>>         at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:273)
>>         at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
>>         at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:319)
>>         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
>>         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1486)
>>         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:528)
>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>>         at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572)
>>         at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1521)
>>         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:136)
>>         at com.ibm.ws.console.core.servlet.WSCUrlFilter.continueStoringTaskState(WSCUrlFilter.java:309)
>>         at com.ibm.ws.console.core.servlet.WSCUrlFilter.doFilter(WSCUrlFilter.java:185)
>>         at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
>>         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
>>         at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82)
>>         at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:759)
>>         at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:89)
>>         at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1924)
>>         at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:98)
>>         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
>>         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
>>         at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:101)
>>         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
>>         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
>>         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
>>         at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
>>         at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
>>
>>
>> when trying to run JBRMs in Browser (the reason maybe that RetroWeaver
>> is using asm 3.0 and JBRMs is using asm 1.5.3:
>>
>>
>> [19.10.07 10:10:12:192 CEST] 00000034 WebApp        E   SRVE0026E:
>> [Servlet-Fehler]-[/index.jsp]: java.lang.NoSuchMethodError:
>> org/objectweb/asm/ClassReader.accept(Lorg/objectweb/asm/ClassVisitor;I)V
>>         at net.sourceforge.retroweaver.runtime.java.lang.annotation.AIB.readClassStream(AIB.java:69)
>>         at net.sourceforge.retroweaver.runtime.java.lang.annotation.AIB.<init>(AIB.java:61)
>>         at net.sourceforge.retroweaver.runtime.java.lang.annotation.AIB.getAib(AIB.java:218)
>>         at net.sourceforge.retroweaver.runtime.java.lang.Class_.getAnnotation(Class_.java:36)
>>         at org.jboss.seam.Seam.getComponentName(Seam.java:91)
>>         at org.jboss.seam.Component.getComponentName(Component.java:1533)
>>         at org.jboss.seam.Component.getInstance(Component.java:1567)
>>         at org.jboss.seam.Component.getInstance(Component.java:1562)
>>         at org.jboss.seam.core.Events.instance(Events.java:132)
>>         at org.jboss.seam.core.Events.exists(Events.java:127)
>>         at org.jboss.seam.contexts.Contexts.destroy(Contexts.java:214)
>>         at org.jboss.seam.contexts.Lifecycle.beginSession(Lifecycle.java:234)
>>         at org.jboss.seam.servlet.SeamListener.sessionCreated(SeamListener.java:41)
>>         at com.ibm.ws.webcontainer.httpsession.SessionContext.sessionCreatedEvent(SessionContext.java:3421)
>>         at com.ibm.ws.webcontainer.httpsession.SessionContext.createSession(SessionContext.java:972)
>>         at com.ibm.ws.webcontainer.httpsession.SessionContext.getIHttpSession(SessionContext.java:2508)
>>         at com.ibm.ws.webcontainer.httpsession.SessionContext.getIHttpSession(SessionContext.java:2417)
>>         at com.ibm.ws.webcontainer.srt.SRTRequestContext.getSession(SRTRequestContext.java:88)
>>         at com.ibm.ws.webcontainer.srt.SRTServletRequest.getSession(SRTServletRequest.java:1049)
>>         at org.jboss.seam.web.ContextFilter.doFilter(ContextFilter.java:47)
>>         at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
>>         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
>>         at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82)
>>         at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:759)
>>         at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
>>         at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:204)
>>         at com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor.handleRequest(JSPExtensionProcessor.java:254)
>>         at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3071)
>>         at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:236)
>>         at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:210)
>>         at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1958)
>>         at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:98)
>>         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
>>         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
>>         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:288)
>>         at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
>>         at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
>>         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
>>         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
>>         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
>>         at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
>>         at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
>>
>> 2007/10/19, Markus Helbig <mhelbig81 at googlemail.com>:
>>     
>>> Hi,
>>>
>>> i manipulated the classes folder and several Jar files in the lib
>>> folder. Deployment is fine, but starting the applications gives:
>>>
>>> ---Original exception---
>>> java.lang.ClassFormatError: (org/jboss/seam/core/package-info) class
>>> name is invalid at offset=0
>>>         at java.lang.ClassLoader.defineClassImpl(Native Method)
>>>         at java.lang.ClassLoader.defineClass(ClassLoader.java:213)
>>>
>>> i had other exceptions too, about problems with:
>>>
>>> ClassVisitor.class in asm.jar ...
>>>
>>> i couldn't find the reason ... i'll try again and post the exact exceptions ...
>>>
>>>       
>>>> Remember that typically the BRMS is an editing tool used by 2-10 people,
>>>> so a case could be made for a 'local' Tomcat or JBoss. The rules can
>>>> then be exported from this and deployed on the existing production
>>>> Websphere (JVM version permitting) - no BRMS needed there.
>>>>         
>>> i know ... but there are several political reasons, which prohibit to
>>> use another AppServer than Websphere ...
>>>
>>> Cheers
>>>
>>> Markus
>>>
>>>       
>
>   




More information about the rules-users mailing list