How to use GateIn JCR integration in my portlet?
hieuhn Feb 1, 2010 9:42 PMHello
I try to write the portlet using SEAM framework running on jboss GateIn beta5 that use JCR(exo JCR) of GateIn and I met an error when run it
09:18:28,906 WARN [MCIntegrationContainer] MC integration failed - maybe not supported in this environment (component: class org.exoplatform.container.ExoContainerContext)
java.lang.RuntimeException: MC Integration initialization error
at org.exoplatform.container.mc.MCIntegrationInvoker.getMCIntegration(MCIntegrationInvoker.java:138)
at org.exoplatform.container.mc.MCIntegrationInvoker.hasMCKernel(MCIntegrationInvoker.java:77)
at org.exoplatform.container.mc.MCIntegrationContainer.hasMCKernel(MCIntegrationContainer.java:121)
at org.exoplatform.container.mc.MCIntegrationContainer.registerComponent(MCIntegrationContainer.java:94)
at org.exoplatform.container.CachingContainer.registerComponent(CachingContainer.java:178)
at org.exoplatform.container.management.ManageableContainer.registerComponent(ManageableContainer.java:169)
at org.picocontainer.defaults.DefaultPicoContainer.registerComponentInstance(DefaultPicoContainer.java:220)
at org.exoplatform.container.CachingContainer.registerComponentInstance(CachingContainer.java:197)
at org.exoplatform.container.management.ManageableContainer.registerComponentInstance(ManageableContainer.java:175)
at org.picocontainer.defaults.DefaultPicoContainer.registerComponentInstance(DefaultPicoContainer.java:197)
at org.exoplatform.container.CachingContainer.registerComponentInstance(CachingContainer.java:190)
at org.exoplatform.container.ExoContainer.<init>(ExoContainer.java:89)
at org.exoplatform.container.RootContainer.<init>(RootContainer.java:87)
at org.exoplatform.container.RootContainer.buildRootContainer(RootContainer.java:385)
at org.exoplatform.container.RootContainer.getInstance(RootContainer.java:440)
at org.exoplatform.container.ExoContainerContext.getTopContainer(ExoContainerContext.java:110)
at org.exoplatform.container.ExoContainerContext.getCurrentContainer(ExoContainerContext.java:126)
at bull.com.orderform.session.JcrDocumentBean.jcrDocument(JcrDocumentBean.java:108)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:32)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:77)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.bpm.BusinessProcessInterceptor.aroundInvoke(BusinessProcessInterceptor.java:51)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:185)
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103)
at
This is my Code
@In(value="#{facesContext}")
FacesContext facesContext;public void jcrDocument()
{
this.value = "DEFAULT";
HttpServletRequest httpRequest = (HttpServletRequest) facesContext.getExternalContext().getRequest();
JCRBrowser jcrBrowser = (JCRBrowser) httpRequest.getSession().getAttribute("browser");
ExoContainer container = (ExoContainer) httpRequest.getSession()
.getServletContext()
.getAttribute("org.exoplatform.frameworks.web.eXoContainer");
if (container == null) {
String portalName = httpRequest.getSession().getServletContext().getServletContextName();
container = ExoContainerContext.getCurrentContainer();
}
SessionProviderService sessionProviderService = (SessionProviderService) container.getComponentInstanceOfType(SessionProviderService.class);
RepositoryService repositoryService = (RepositoryService) container.getComponentInstanceOfType(RepositoryService.class);
ManageableRepository repository;
try {
repository = repositoryService.getDefaultRepository();
Session jcrSession = sessionProviderService.getSessionProvider(null)
.getSession(repository.getConfiguration()
.getDefaultWorkspaceName(),
repository);
System.out.print("\n--START-->repository.getConfiguration "+repository.getConfiguration()
.getDefaultWorkspaceName());
} catch (LoginException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchWorkspaceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RepositoryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RepositoryConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
I don't know how to use the exo JCR in my portlet. Can someone tell me what exactly I have to do?
Best regards
HieuHN