ilog6 在weblogic10 上部署问题
weblogic 版本是10.3.6 ilog 版本是:6.6.3 版本由于项目是从JBOSS 上迁移到WEBLOGIC 上,
第一次调用 报错信息如下,但是之后调用就会正常、相应规则也执行了
如果信息如下:
java.rmi.RemoteException: EJB Exception: ; nested exception is:
java.lang.NoSuchMethodError: ilog.rules.engine.IlrRuleset.setSam(Lilog/j
um/client650/IluSAM;)V
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:20
5)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef
.java:345)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef
.java:259)
at ilog.rules.bres.session.ejb.IlrStatelessRuleSessionEJB_ugt9ms_EOImpl_
1036_WLStub.executeRules(Unknown Source)
at com.servelt.engine.RuleExceuteSession.runRule(RuleExceuteSession.java
:49)
at com.servelt.test.TestServlet.doPost(TestServlet.java:52)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run
(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecuri
tyHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.jav
a:301)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.jav
a:184)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.wrapRun(WebAppServletContext.java:3732)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:3696)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppS
ervletContext.java:2273)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletC
ontext.java:2179)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.j
调用的代码如下:
Properties p = new Properties();
//p.load(RuleExecuteSession.class.getClassLoader().getResourceAsStream("jndi.properties"));
p.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
p.put("java.naming.provider.url", "t3://127.0.0.1:7001");
p.put("java.naming.security.principal","weblogic");
p.put("java.naming.security.credentials","1qaz2wsx");
//IlrRuleSessionProvider rsProvider = new IlrRuleSessionProviderFactory.Builder(p).build();
IlrRuleSessionProvider rsProvider = new IlrRuleSessionProviderFactory.Builder(p).setJNDINameOfRuleSessionStateless("ejb.life.IlrStatelessRuleSessionEJB").build();
//IlrRuleSessionProvider rsProvider = new IlrRuleSessionProviderFactory.Builder(IlrRuleSessionProviderFactory.REMOTE_RULESESSION_PROVIDER).setJNDINameOfRuleSessionStateless("ejb.life.IlrStatelessRuleSessionEJB").build();
System.out.println("rsProvider:"+rsProvider);
IlrStatelessRuleSession rs = rsProvider.createStatelessRuleSession();
System.out.println("rs:"+rs);
IlrSessionRequest request = new IlrSessionRequest(rulePath);
System.out.println("request:"+request);
IlrSessionExecutionSettings settings = request.getExecutionSettings();
System.out.println("settings:"+settings);
IlrSessionParameters pars = settings.getInputParameters();
System.out.println("pars:"+pars);
System.out.println("**************************************");
pars.setParameter(IN_PARAMETER, proposalBom);
IlrSessionResponse response = rs.executeRules(request);
System.out.println("response:"+response);
IlrSessionExecutionResult result = response.getExecutionResult();
System.out.println("result:"+result);
IlrSessionParameters outPars = result.getOutputParameters();
System.out.println("outPars:"+outPars);
BOMResult verifyResult = (BOMResult) outPars.getObjectValue(OUT_PARAMETER);