Hi there,
Problem with working out how to integrate a java client with a Tomcat portal as per instructions Integrate a process into an application .
Here is what I’ve done so far:
- Created a tomcat-portal
- Copied tomcat/bonita to tomcat/bonitaBatch
- Edited tomcat/bonitaBatch/conf/bonita-client.properties and commented out #Local while uncommented #HTTP ( Configuring Bonita Home for a client)
- and copied the code from Integrate a process (Login & Logout only) to my java program
- Opened the portal and verified the web pages are accessible
But when i execute my java client I get an error saying there is no session available.
My code is as follows:
public static void main(String[] args) { System.out.println("Program started!");
try {
String hostAPAddress = “192...***”;
Map<String, String> map = new HashMap<String, String>();
map.put(“server.url”, “http://”+hostIPAddress+“:8080”);
map.put(“application.name”, “app”);
System.out.println("APITypeManager: In");
APITypeManager.setAPITypeAndParams(ApiAccessType.HTTP, map);
System.out.println("APITypeManager: Out");
// get the LoginAPI using the TenantAPIAccessor
System.out.println("Got a loginAPI: In");
LoginAPI loginAPI = TenantAPIAccessor.getLoginAPI();
System.out.println("Got a loginAPI: Out : " + loginAPI.toString());
// Set the username and password for the application
System.out.println("login: ");
final String username = "walter.bates";
final String password = "bpm";
// log in to the tenant to create a session
APISession apiSession = loginAPI.login(username, password);
System.out.println("Got a apiSession: " + apiSession.toString());
@SuppressWarnings("unused")
ProcessAPI processAPI = TenantAPIAccessor.getProcessAPI(apiSession);
System.out.println("Got a processAPI: " + processAPI.toString());
// Logout
loginAPI.logout(apiSession);
System.out.println("logout: ");
} catch (BonitaHomeNotSetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ServerAPIException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnknownAPITypeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (LoginException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SessionNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (LogoutException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Program ended!");
}
and the log is as follows, how do I fix this?
Program started!
APITypeManager: In
APITypeManager: Out
Got a loginAPI: In
Feb 12, 2015 3:40:40 PM org.bonitasoft.engine.api.HTTPServerAPI executeHttpPost
SEVERE: Not Found
httpost =
Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy0.toString(Unknown Source)
at org.gubernare.app.app.main(app.java:110)
Caused by: org.apache.http.client.HttpResponseException: Not Found
at org.bonitasoft.engine.api.HTTPServerAPI.invokeMethod(HTTPServerAPI.java:143)
at org.bonitasoft.engine.api.impl.ClientInterceptor.invoke(ClientInterceptor.java:88)
at com.sun.proxy.$Proxy0.toString(Unknown Source)
at org.gubernare.app.app.main(app.java:110)
at < ========== Beginning of the server stack trace ========== >. ( )
at org.bonitasoft.engine.http.BonitaResponseHandler.handleResponse(BonitaResponseHandler.java:45)
at org.bonitasoft.engine.http.BonitaResponseHandler.handleResponse(BonitaResponseHandler.java:30)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1142)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1076)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1050)
at org.bonitasoft.engine.api.HTTPServerAPI.executeHttpPost(HTTPServerAPI.java:165)
at org.bonitasoft.engine.api.HTTPServerAPI.invokeMethod(HTTPServerAPI.java:135)
at org.bonitasoft.engine.api.impl.ClientInterceptor.invoke(ClientInterceptor.java:88)
... 2 more
When I use
String hostAPAddress = "192.***.***.***"; Map map = new HashMap(); map.put("server.url", "http://"+hostIPAddress+":8080"); map.put("application.name", "app");I get the following error:
Program started!
APITypeManager: In
APITypeManager: Out
Got a loginAPI: In
Exception in thread “main” org.bonitasoft.engine.exception.BonitaRuntimeException: session is null
at org.bonitasoft.engine.api.HTTPServerAPI.invokeMethod(HTTPServerAPI.java:143)
at org.bonitasoft.engine.api.impl.ClientInterceptor.invoke(ClientInterceptor.java:88)
at com.sun.proxy.$Proxy0.toString(Unknown Source)
at org.gubernare.app.app.main(app.java:110)
at < ========== Beginning of the server stack trace ========== >. ( )
at org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeAPIInTransaction(ServerAPIImpl.java:322)
at org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeAPI(ServerAPIImpl.java:274)
at org.bonitasoft.engine.api.impl.ServerAPIImpl.invokeMethod(ServerAPIImpl.java:128)
at org.bonitasoft.engine.api.internal.servlet.HttpAPIServletCall.doPost(HttpAPIServletCall.java:112)
at org.bonitasoft.engine.api.internal.servlet.HttpAPIServlet.doPost(HttpAPIServlet.java:35)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
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 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.bonitasoft.console.security.SessionFixationValve.invoke(SessionFixationValve.java:77)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)