Guvnor uses reflection to find out about classes in your object model, so any referenced class also needs to be uploaded.<br><br>I would suggest, if possible, that you make a smaller JAR only consisting of your fact objects and try to only reference the service objects from their interface as opposed to implentation via a Drools global variable or normal object that you match on. For example, as opposed to coding to FooServiceImpl that references JMS/JEE classes directly, have a global that is type FooService that is just the interface.<br>
<br>dave<br><br>On Mon, Jan 11, 2010 at 10:33 AM, HonorGod <span dir="ltr"><<a href="mailto:jagadeesh.motamarri@barclayscapital.com">jagadeesh.motamarri@barclayscapital.com</a>></span> wrote:<br><div class="gmail_quote">
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
Thanks for the quick response. I have been playing doing this all over the<br>
weekend.<br>
I have noticed couple of issues. Drools Guvnor enforces us that we have all<br>
the dependency packages to be included in the snapshot. Lets say my decision<br>
table uses Log4j to spit some output to the logs....Guvnor forces me to<br>
upload log4j jars into my package. My decision tables access some singleton<br>
classes that have other dependencies on JMS and j2ee packages.....and guvnor<br>
enforces me to upload them as well....<br>
<br>
I created a package and uploaded my models [ and dependencies] which is<br>
around 40 MB. Guvnor freezes while unpacking those jars.<br>
<br>
And finally after doing all this...i get weird errors while saving and<br>
validating configurations...something like the below..<br>
<br>
ERROR 11-01 10:07:23,616<br>
(RepositoryServiceServlet.java:doUnexpectedFailure:66)<br>
java.lang.reflect.InvocationTargetException<br>
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public<br>
abstract org.drools.guvnor.client.rpc.ValidatedResponse org.d<br>
s.guvnor.client.rpc.RepositoryService.savePackage(org.drools.guvnor.client.rpc.PackageConfigData)<br>
throws com.google.gwt.user.client.rpc.<br>
alizableException' threw an unexpected exception:<br>
java.lang.reflect.InvocationTargetException<br>
at<br>
com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:360)<br>
at<br>
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:546)<br>
at<br>
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:164)<br>
at<br>
com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)<br>
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)<br>
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)<br>
at<br>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<br>
at<br>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br>
at org.jboss.seam.web.ContextFilter$1.process(ContextFilter.java:42)<br>
at<br>
org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:53)<br>
at org.jboss.seam.web.ContextFilter.doFilter(ContextFilter.java:37)<br>
at<br>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<br>
at<br>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br>
at<br>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)<br>
at<br>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)<br>
at<br>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)<br>
at<br>
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)<br>
at<br>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<br>
at<br>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)<br>
at<br>
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)<br>
at<br>
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:574)<br>
at<br>
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1527)<br>
at java.lang.Thread.run(Unknown Source)<br>
Caused by: java.lang.reflect.InvocationTargetException<br>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br>
at java.lang.reflect.Method.invoke(Unknown Source)<br>
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)<br>
at<br>
org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)<br>
at<br>
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)<br>
at<br>
org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28)<br>
at<br>
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)<br>
at<br>
org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:77)<br>
at<br>
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)<br>
at<br>
org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)<br>
at<br>
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)<br>
at<br>
org.jboss.seam.security.SecurityInterceptor.aroundInvoke(SecurityInterceptor.java:157)<br>
at<br>
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)<br>
at<br>
org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)<br>
at<br>
org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)<br>
at<br>
org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)<br>
at<br>
org.drools.guvnor.server.ServiceImplementation_$$_javassist_8.savePackage(ServiceImplementation_$$_javassist_8.java)<br>
at<br>
org.drools.guvnor.server.RepositoryServiceServlet.savePackage(RepositoryServiceServlet.java:148)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br>
at java.lang.reflect.Method.invoke(Unknown Source)<br>
at<br>
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)<br>
... 21 more<br>
Caused by: java.lang.NoClassDefFoundError:<br>
com/enterprisedt/net/ftp/FileTransferClientInterface<br>
at java.lang.ClassLoader.defineClass1(Native Method)<br>
at java.lang.ClassLoader.defineClass(Unknown Source)<br>
at<br>
org.drools.rule.MapBackedClassLoader.fastFindClass(MapBackedClassLoader.java:70)<br>
at<br>
org.drools.rule.MapBackedClassLoader.loadClass(MapBackedClassLoader.java:89)<br>
at java.lang.ClassLoader.loadClass(Unknown Source)<br>
at<br>
org.drools.base.ClassTypeResolver.resolveType(ClassTypeResolver.java:144)<br>
at<br>
org.drools.guvnor.server.rules.SuggestionCompletionLoader.loadClass(SuggestionCompletionLoader.java:387)<br>
at<br>
org.drools.guvnor.server.rules.SuggestionCompletionLoader.populateModelInfo(SuggestionCompletionLoader.java:289)<br>
at<br>
org.drools.guvnor.server.rules.SuggestionCompletionLoader.processPackageHeader(SuggestionCompletionLoader.java:180)<br>
at<br>
org.drools.guvnor.server.rules.SuggestionCompletionLoader.getSuggestionEngine(SuggestionCompletionLoader.java:130)<br>
at<br>
org.drools.guvnor.server.util.BRMSSuggestionCompletionLoader.getSuggestionEngine(BRMSSuggestionCompletionLoader.java:52)<br>
at<br>
org.drools.guvnor.server.ServiceImplementation.savePackage(ServiceImplementation.java:860)<br>
... 46 more<br>
<br>
Looks like there is a workaround for this in 5.0.1 [i am currently using<br>
5.0] -<br>
<a href="https://jira.jboss.org/jira/browse/BRMS-197" target="_blank">https://jira.jboss.org/jira/browse/BRMS-197</a><br>
<br>
<br>
Any finally when I try to build the package guvnor seems to invoke one of my<br>
classes and is checking to see if it has some files in the classpath [not<br>
sure how to include these] and throws a java.io.FileNotFoundException<br>
<br>
Please help<br>
<div><div></div><div class="h5"><br>
<br>
<br>
<br>
David Sinclair-2 wrote:<br>
><br>
> Any artifact in Guvnor needs to be put into a package. Yes, you need to<br>
> build your package and create a snapshot with said snapshot available via<br>
> the URL<br>
><br>
> http://<your<br>
> server>/drools-guvnor/org.drools.guvnor.Guvnor/packages/<packageName>/<snapshotName><br>
><br>
> On Mon, Jan 11, 2010 at 9:56 AM, HonorGod <<br>
> <a href="mailto:jagadeesh.motamarri@barclayscapital.com">jagadeesh.motamarri@barclayscapital.com</a>> wrote:<br>
><br>
>><br>
>> Sure...I read this part already and my question is after I uploaded the<br>
>> decision tables, Do i need to create packages and create a snapshot so<br>
>> that<br>
>> I get URL?<br>
>><br>
>> Please let me know.<br>
>><br>
>> Thanks.<br>
>><br>
>> David Sinclair-2 wrote:<br>
>> ><br>
>> > I would recommend you reading the Guvnor documentation, specifically<br>
>> this<br>
>> > section on integration of rules from Guvnor with your application<br>
>> ><br>
>> ><br>
>> <a href="http://downloads.jboss.com/drools/docs/5.0.1.26597.FINAL/drools-guvnor/html_single/index.html#d0e1053" target="_blank">http://downloads.jboss.com/drools/docs/5.0.1.26597.FINAL/drools-guvnor/html_single/index.html#d0e1053</a><br>
>> ><br>
>> > On Mon, Jan 11, 2010 at 9:45 AM, HonorGod <<br>
>> > <a href="mailto:jagadeesh.motamarri@barclayscapital.com">jagadeesh.motamarri@barclayscapital.com</a>> wrote:<br>
>> ><br>
>> >><br>
>> >> I guess the forum is too slow...may be becoz the number of people<br>
>> using<br>
>> >> drools is few...I was just wondering if someone can point me in right<br>
>> >> direction..<br>
>> >><br>
>> >> i upload the decision tables inot guvnor....now i need to access them<br>
>> >> thru<br>
>> >> java....how do i do that? Do i need to create packages with<br>
>> drools....or<br>
>> >> ?<br>
>> >><br>
>> >><br>
>> >> HonorGod wrote:<br>
>> >> ><br>
>> >> > Hi,<br>
>> >> ><br>
>> >> > Is there a specific tutorial that guides step by step on how to use<br>
>> >> drools<br>
>> >> > guvnor to upload decision tables and use them in java code.<br>
>> >> ><br>
>> >> > - packages [why they are required]<br>
>> >> > - what is deployment snapshot...is it something that is necessary?<br>
>> >> > - any tutorials etc.<br>
>> >> ><br>
>> >> > Please let know.<br>
>> >> ><br>
>> >> > Thank You!<br>
>> >> ><br>
>> >><br>
>> >> --<br>
>> >> View this message in context:<br>
>> >> <a href="http://n3.nabble.com/Guvnor-Decision-Tables-tp116258p116836.html" target="_blank">http://n3.nabble.com/Guvnor-Decision-Tables-tp116258p116836.html</a><br>
>> >> Sent from the Drools - User mailing list archive at Nabble.com.<br>
>> >> _______________________________________________<br>
>> >> rules-users mailing list<br>
>> >> <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
>> >> <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
>> >><br>
>> ><br>
>> > _______________________________________________<br>
>> > rules-users mailing list<br>
>> > <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
>> > <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
>> ><br>
>> ><br>
>><br>
>> --<br>
>> View this message in context:<br>
>> <a href="http://n3.nabble.com/Guvnor-Decision-Tables-tp116258p116850.html" target="_blank">http://n3.nabble.com/Guvnor-Decision-Tables-tp116258p116850.html</a><br>
>> Sent from the Drools - User mailing list archive at Nabble.com.<br>
>> _______________________________________________<br>
>> rules-users mailing list<br>
>> <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
>> <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
>><br>
><br>
> _______________________________________________<br>
> rules-users mailing list<br>
> <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
> <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
><br>
><br>
<br>
--<br>
</div></div>View this message in context: <a href="http://n3.nabble.com/Guvnor-Decision-Tables-tp116258p116896.html" target="_blank">http://n3.nabble.com/Guvnor-Decision-Tables-tp116258p116896.html</a><br>
<div><div></div><div class="h5">Sent from the Drools - User mailing list archive at Nabble.com.<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</div></div></blockquote></div><br>