VERIFIED SOLUTION i
X

Vault CMIS on Websphere ATOM and WSDL not working

Issue

Vault CMIS on Websphere ATOM and WSDL not working

 

CMIS appears to be up and running on the following URL: http://localhost:9080/vault/cmis/ see attached screenshot showing that the service is up and running

However they try to access either http://localhost:9080/vault-cmis/atom11 (atom) or http://localhost:9080/vault-cmis/services11/cmis?wsdl (wsdl) they get error messages

 

http://localhost:9080/vault-cmis/services11/cmis?wsdl

Error 500: javax.servlet.ServletException: SRVE0207E: Uncaught initialization exception created by servlet

 

http://localhost:9080/vault-cmis/atom11

Exception: CmisRuntimeException

Internal Server Error

 

Something fatal happened on the client or server side

Check your URL, the binding, and your proxy settings

 

Also see the CMIS workbench log for more details

Cause

To troubleshoot this it is helpful to get the application server logs (websphere or Tomcat) and also the JSON file

 

WebSphere\AppServer\profiles\AppSrv01\log4j.log

WebSphere\AppServer\profiles\AppSrv01\logs\server1\SystemOut.log

 

The CmisRuntimeException is a wrapper for generic errors inside the CMIS implementation.

 

There may be a stacktrace in the log file showing the inner exception that caused the problem.

 

For example, if I intentionally corrupt the JSON configuration file and restart the application, I see an error in log4j.log like the following:

 

2016-01-08 12:08:28,122 ERROR [WebContainer : 5] org.apache.chemistry.opencmis.server.impl.CmisRepositoryContextListener: Service factory couldn't be created: org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: unable to initialize the CMIS service factory

org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: unable to initialize the CMIS service factory

at com.pb.vault.cmis.server.VaultCmisServiceFactory.init(VaultCmisServiceFactory.java:46)

<snip>

at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881)

Caused by: com.pb.vault.cmis.config.ConfigurationException: unable to read vault.cmis.config configuration file

at com.pb.vault.cmis.config.ConfigurationException.wrap(ConfigurationException.java:27)

at com.pb.vault.cmis.config.Configuration.read(Configuration.java:69)

at com.pb.vault.cmis.server.VaultCmisServiceFactory.init(VaultCmisServiceFactory.java:42)

... 106 more

Caused by: Unexpected character (t) at position 0.

at org.apache.chemistry.opencmis.commons.impl.json.parser.Yylex.yylex(Yylex.java:569)

<snip>

at com.pb.vault.cmis.config.Configuration.read(Configuration.java:51)

... 107 more

 

In this case, the root cause was that the CMIS JSON file was not configured correctly.

 

Websphere Systemout log had the following exception message:

 

org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: unable to initialize the CMIS service factory

at com.pb.vault.cmis.server.VaultCmisServiceFactory.init(VaultCmisServiceFactory.java:46)

at org.apache.chemistry.opencmis.server.impl.CmisRepositoryContextListener.createServiceFactory(CmisRepositoryContextListener.java:136)

at org.apache.chemistry.opencmis.server.impl.CmisRepositoryContextListener.contextInitialized(CmisRepositoryContextListener.java:60)

at com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:1678)

at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:414)

at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88)

at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169)

at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:749)

at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:634)

at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:426)

at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:718)

at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1175)

at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1370)

at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:639)

at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:968)

at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:774)

at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2182)

at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:445)

at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)

at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:388)

at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$500(CompositionUnitMgrImpl.java:116)

at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:994)

at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:502)

at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)

Caused by: com.pb.vault.cmis.config.ConfigurationException: Repository: Invalid/Missing database configuration for [VaultCmis]

 

 

com.pb.vault.cmis.config.ConfigurationException: Repository: Invalid/Missing database configuration for [VaultCmis] points to something being misconfigured in the JSON file related to the database, or around or before the database section.

Resolution

UPDATED: September 7, 2017


In this case, the customer's JSON file did not pass validation, there were some extra commas where they should not have been in some of the sections.

 

On start up OpenCMIS framework tries to create the Vault service factory. This process reads the JSON configuration file internally. If there is an error, the factory is not created.

 

When running normally, OpenCMIS will use the factory to create a service object to hand off the request to for processing.

 

When there is a configuration error, no service factory is available and the OpenCMIS library reports this error.

 

If you see this error, look further up the log for startup errors.

 

Good:

com.pb.vault.cmis.server.VaultCmisServiceFactory: Vault CMIS Connector 7.2.0.22-RELEASE (vault-cmis-7.2.0.22-RELEASE.war)

com.pb.vault.cmis.data.JdbcDocumentDatabaseImpl: Document database using DriverManagerDaoFactory

com.pb.vault.cmis.config.WorldBuilder: create repository [default]

 

Bad:

com.pb.vault.cmis.server.VaultCmisServiceFactory: Vault CMIS Connector 7.2.0.22-RELEASE (vault-cmis-7.2.0.22-RELEASE.war)

org.apache.chemistry.opencmis.server.impl.CmisRepositoryContextListener: Service factory couldn't be created: org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: unable to initialize the CMIS service factory

org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: unable to initialize the CMIS service factory

Caused by: com.pb.vault.cmis.config.ConfigurationException: unable to read vault.cmis.config configuration file

Caused by: Unexpected character (e) at position 283.

Downloads

  • No Downloads