It's all about the answers!

Ask a question

RTC plun-in, api


seyoung kim (3710) | asked Nov 07 '12, 9:02 p.m.
edited Nov 07 '12, 9:03 p.m.
hi
my name is seyoung
I'm stuyding RTC java-api (server side)
When i make task, automatically i'd like to make parent(story id  :21)

this is my source
IWorkItemServer wiServer = getService(com.ibm.team.workitem.service.IWorkItemServer.class);
int workItemNumber=21;
IWorkItem story_workItem = wiServer.findWorkItemById(workItemNumber, IWorkItem.FULL_PROFILE, null);                IReference reference = IReferenceFactory.INSTANCE.createReferenceToItem(story_workItem);
WorkItemWorkingCopy workingCopy = (WorkItemWorkingCopy) workItem.getWorkingCopy();
workingCopy.getReferences().add(WorkItemEndPoints.PARENT_WORK_ITEM, reference);


Problem
An error occurred during "Save Work Item".
java.lang.NoClassDefFoundError: com.ibm.team.workitem.client.WorkItemWorkingCopy

although i add api( com.ibm.team.workitem.client.WorkItemWorkingCopy;)
,but i can't use related to WorkItemWorkingCopy..

1. can i use client-api in server-side???
2. there is another solution??? for workingcopy...

2 answers



permanent link
Ralph Schoon (63.1k33646) | answered Nov 08 '12, 2:00 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Hi, you need to use the WorkingCopyManager, see the code below. As described in http://rsjazz.wordpress.com/2012/08/01/uploading-attachments-to-work-items/ I personally prefer to use the WorkItemOperation as described in https://jazz.net/wiki/bin/view/Main/ProgrammaticWorkItemCreation which nicely wraps all the fiddly bits and leaves doing the part I am really interested in. I try to collect examples I found in the blog. Only issue: Wordpress is blocked in China.


            IWorkItemClient  workItemService = (IWorkItemClient) targetRepository
            .getClientLibrary(IWorkItemClient.class);
            IWorkItemHandle handle = workItemService.getWorkItemWorkingCopyManager()
                    .connectNew(mappedInternalWorkItemType, monitor);
            WorkItemWorkingCopy wc = workItemService.getWorkItemWorkingCopyManager()
                    .getWorkingCopy(handle);
            IWorkItem workItem = wc.getWorkItem();
            try {
                
                workItem.setCreator(workPackageInitialCreator);
                workItem.setOwner(workPackageInitialOwner);
                workItem.setHTMLSummary(XMLString
                        .createFromPlainText(sSummary));
                workItem.setHTMLDescription(XMLString
                        .createFromPlainText(sDescript));
                           
                try {
                    if (!workItem.hasCustomAttribute(externalIDWorkItemAttribute)) {
                        IAttribute newAttribute = externalIDWorkItemAttribute;
                        workItem.addCustomAttribute(newAttribute);
                        workItem.setValue(newAttribute, sFId);
                    }
                   
                } catch (RuntimeException e) {
                    System.out.println(e.getMessage());
                    System.out.println(e.toString());
                    e.printStackTrace();
                }
           
                IDetailedStatus s = wc.save(monitor);
                if (!s.isOK()) {
                    throw new TeamRepositoryException("Error saving work item",
                            s.getException());
                }
            } finally {
                workItemService.getWorkItemWorkingCopyManager().disconnect(workItem);
            }


Comments
Ralph Schoon commented Nov 08 '12, 2:02 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

The API above is for the Client Libraries, but it is really similar in server extensions.


permanent link
Sudipto Sarkar (631343) | answered Jul 15 '15, 8:33 a.m.
Hi Ralph,

 I am trying to create a workitem using java client. While executing below line:
IWorkItemType workItemType = service.findWorkItemType(projectArea, "Defect",  monitor);

i am getting following exception:
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jface/text/BadLocationException
    at com.ibm.team.process.internal.client.ThinClientProcess.createConfigurationData(ThinClientProcess.java:329)
    at com.ibm.team.process.internal.client.ThinClientProcess.getProjectConfigurationData(ThinClientProcess.java:280)
    at com.ibm.team.workitem.client.internal.AuditableClientProcess.findProcessConfiguration(AuditableClientProcess.java:72)
    at com.ibm.team.workitem.common.internal.ConfigurationItemManager.resolveProcessConfiguration(ConfigurationItemManager.java:124)
    at com.ibm.team.workitem.common.internal.ConfigurationItemManager.readConfigurationItems(ConfigurationItemManager.java:107)
    at com.ibm.team.workitem.common.internal.WorkItemTypeManager.readConfigurationItems(WorkItemTypeManager.java:370)
    at com.ibm.team.workitem.common.internal.ConfigurationItemManager.updateCache(ConfigurationItemManager.java:99)
    at com.ibm.team.workitem.common.internal.util.CacheHelper.internalCheckCache(CacheHelper.java:107)
    at com.ibm.team.workitem.common.internal.util.CacheHelper.checkCache(CacheHelper.java:73)
    at com.ibm.team.workitem.common.internal.util.CacheHelper.checkCache(CacheHelper.java:65)
DEBUG [main] (InternalTeamPlatform.java:212) - Thread[main,5,main]
DEBUG [main] (InternalTeamPlatform.java:212) - shutdown stopped: false
DEBUG [main] (InternalTeamPlatform.java:212) - setting stopped variables
    at com.ibm.team.workitem.common.internal.ConfigurationItemManager.findConfigurationItems(ConfigurationItemManager.java:48)
    at com.ibm.team.workitem.common.internal.WorkItemCommon.findWorkItemTypes(WorkItemCommon.java:435)
    at com.bosch.RTC.Example.WorkItemCreation.createWorkItem(WorkItemCreation.java:49)
    at com.bosch.RTC.Example.WorkItemCreation.main(WorkItemCreation.java:36)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jface.text.BadLocationException
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 14 more

Any solution to this?

Thanks,
Sud

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.