cancel
Showing results for 
Search instead for 
Did you mean: 

How to set Category for a content?

jeyaa
Champ in-the-making
Champ in-the-making
Hi,

I have a content called "Car_docs" and I want to assign this content to the category

Vehicle –> four Wheeler –> car –> BMW

So how could I achieve this through Java.


Regards,
Jeya.
2 REPLIES 2

patil
Champ on-the-rise
Champ on-the-rise
You can do it in 2 ways
1. Through Categorization
     Vehicle –> four Wheeler –> car –> BMW
  You create the categories in the heirarchy you have mentioned. After adding the content go to ViewDetails of the content and add the category

2. BY content model
    Your vehicle type should extend cm:content and have the properties related to vehicle.
    Four wheeler type has to extend ct:vehicle and have the properties related to four wheeler.
    car type has to extend ct:fourwheeler and have the properties related to car.
    bmw type has to extend ct:car and have the properties related to bmw.

Thanks,
Patil
Cignex Technologies
Bangalore

jeyaa
Champ in-the-making
Champ in-the-making
Thanks for your reply Patil,

But I have created a categories and now through java program i need to assign one content the BMW category. Please suggest on this.

So Far I did,


String category = "/cm:categoryRoot/cm:generalclassifiable/cm:Vehicle/cm:FourWheeler/cm:car/cm:BMW
NodeRef CategoryNodeRef = new NodeRef(category);

List<NodeRef> list = new ArrayList<NodeRef>;
list.add(CategoryNodeRef );
getNodeService().setProperty(member, ContentModel.PROP_CATEGORIES, (Serializable) list);

Here member is the NodeRef of my content.

But while executing this am getting the following exception.

16:00:40,125 User:admin ERROR [ui.common.Utils] A system error happened during the operation: 04180001 Invalid store ref: Does not contain ://   /cm:categoryRoot/cm:
org.alfresco.error.AlfrescoRuntimeException: 04180001 Invalid store ref: Does not contain ://   /cm:categoryRoot/cm:generalclassifiable
        at org.alfresco.service.cmr.repository.StoreRef.<init>(StoreRef.java:74)
        at org.alfresco.service.cmr.repository.NodeRef.<init>(NodeRef.java:87)
        at com.kpub.web.bean.categories.DeleteCategoryDialogCustom$1.execute(DeleteCategoryDialogCustom.java:115)
        at com.kpub.web.bean.categories.DeleteCategoryDialogCustom$1.execute(DeleteCategoryDialogCustom.java:107)
        at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:325)
        at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:232)
        at com.kpub.web.bean.categories.DeleteCategoryDialogCustom.finishDelete(DeleteCategoryDialogCustom.java:149)
        at org.alfresco.web.bean.categories.DeleteCategoryDialog.finishImpl(DeleteCategoryDialog.java:249)
        at org.alfresco.web.bean.dialog.BaseDialogBean$1.execute(BaseDialogBean.java:118)
        at org.alfresco.web.bean.dialog.BaseDialogBean$1.execute(BaseDialogBean.java:114)
        at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:325)
        at org.alfresco.web.bean.dialog.BaseDialogBean.finish(BaseDialogBean.java:124)
        at org.alfresco.web.bean.dialog.DialogManager.finish(DialogManager.java:528)
        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:597)
        at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132)
        at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
        at javax.faces.component.UICommand.broadcast(UICommand.java:109)
        at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
        at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
        at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
        at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:104)
        at sun.reflect.GeneratedMethodAccessor533.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:116)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        at $Proxy233.doFilter(Unknown Source)
        at org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.alfresco.repo.web.filter.beans.NullFilter.doFilter(NullFilter.java:68)
        at sun.reflect.GeneratedMethodAccessor533.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:116)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        at $Proxy233.doFilter(Unknown Source)
        at org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:58)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
        at java.lang.Thread.run(Thread.java:619)