How to use Bonite Engine api with Liferay portlet?

I installed BonitaBPMCommunity-7.2.3 and liferay-portal-6.2-ce-ga6.

I want to use Bonita Engine Api in Liferay portlet. I had configure bonita home in directory "C:\_portal\liferay-portal-6.2-ce-ga6\bonita".

My java code:

System.setProperty(BONITA_HOME_KEY, BONITAHOME);
System.out.println("Start");
final LoginAPI loginAPI = TenantAPIAccessor.getLoginAPI();
System.out.println("login with install//install");
final APISession session = loginAPI.login("walter.bates", "bpm");
final IdentityAPI identityAPI = TenantAPIAccessor.getIdentityAPI(session);
final SearchResult<User> searchUsers = identityAPI.searchUsers(new SearchOptionsBuilder(0, 20).done());
System.out.println("20 first users:");
for (final User user : searchUsers.getResult()) {
  System.out.println(" * " + user.getUserName() + " -- " + user.getId());
  }
loginAPI.logout(session);
System.out.println("logged out");  
System.out.println("Hello");

I have a error:

05:46:45,227 ERROR [ExceptionHandlerAjaxImpl:69] /views/view.xhtml @14,64 actionListener="#{buttonView.buttonAction}": java.lang.NoSuchMethodError: org.apache.http.entity.StringEntity.(Ljava/lang/String;Lorg/apache/http/entity/ContentType;)V javax.faces.event.AbortProcessingException: /views/view.xhtml @14,64 actionListener="#{buttonView.buttonAction}": java.lang.NoSuchMethodError: org.apache.http.entity.StringEntity.(Ljava/lang/String;Lorg/apache/http/entity/ContentType;)V at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:182) at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88) at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:775) at javax.faces.component.UICommand.broadcast(UICommand.java:300) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:786) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1251) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at com.liferay.faces.bridge.BridgePhaseResourceImpl.execute(BridgePhaseResourceImpl.java:103) at com.liferay.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:128) at javax.portlet.faces.GenericFacesPortlet.serveResource(GenericFacesPortlet.java:178) at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:122) at com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:82) at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:116) at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:71) at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:112) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:580) at com.liferay.portlet.InvokerPortletImpl.invokeResource(InvokerPortletImpl.java:675) at com.liferay.portlet.InvokerPortletImpl.serveResource(InvokerPortletImpl.java:441) at com.liferay.portlet.PortletContainerImpl._doServeResource(PortletContainerImpl.java:775) at com.liferay.portlet.PortletContainerImpl.serveResource(PortletContainerImpl.java:149) at com.liferay.portlet.SecurityPortletContainerWrapper.serveResource(SecurityPortletContainerWrapper.java:166) at com.liferay.portlet.RestrictPortletContainerWrapper.serveResource(RestrictPortletContainerWrapper.java:166) at com.liferay.portal.kernel.portlet.PortletContainerUtil.serveResource(PortletContainerUtil.java:164) at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:394) at com.liferay.portal.action.LayoutAction.doExecute(LayoutAction.java:200) at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:95) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:168) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:557) at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:534) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) at com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93) at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)`

Upvotes: 0

Views: 220

Answers (1)

Gael Onno
Gael Onno

Reputation: 1

  1. I gather from the URL of the bonita server and the user you use for login that you are trying to connect to the embedded server in the studio for your tests. Please be aware that the only reliable test you may conduct for testing bonita and liferay is a standalone bonita server (you can always include a bonita installation inside the liferay server but as both could be big consumers of memory, I will not advise for it).
  2. The only time you need to set the bonita Home is in the setenv variables either in your favorite IDE server configuration or directly in the configuration of your server.
  3. Your code is ok except for the login part. The configuration of the tenantApiAcessor parameters is missing (example code below)

    Map settings = new HashMap(); settings.put("server.url", "http://localhost:8080"); settings.put("application.name", "bonita"); APITypeManager.setAPITypeAndParams(ApiAccessType.HTTP, settings); // get the LoginAPI using the TenantAPIAccessor LoginAPI loginAPI = TenantAPIAccessor.getLoginAPI(); // exception handling here

Upvotes: 0

Related Questions