Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

RTC 5.0.2 Failed to start a participant "CRJAZ6011E"

Hi

I tried to create a new RTC participant based on the article https://jazz.net/forum/questions/44456/get-custom-attribute-key-and-value-in-server-side-plugin 

The participant failed to load with an internal error I found this error in the log:

10:37:00,184 [1508858351@qtp-917124778-10 @@ 10:36 TestJazzAdmin1 <Jakarta Commons-HttpClient/3.1@127.0.0.1> /jazz/service/com.ibm.team.workitem.common.internal.IWorkItemRepositoryService] ERROR com.ibm.team.process.common                         - CRJAZ6011E The operation participant cannot be created because an exception occurred. For more information, see the exception.
com.ibm.team.repository.common.transport.TeamServiceRegistryException: CRJAZ1094I The service "ca.navcan.jazz.updatenesamr.participant.UpdateNesaMR" failed to be activated because a service it depends on, "com.ibm.team.workitem.service.IWorkItemCommon", has not been acquired and forcing service activation was not requested.

I've added the the ICommon service to my participant plugin xml as shown below

When running my jetty based RTC server/eclipse client, the server throws an internal error when triggering the participant. See image below:

  

Any help would be appreciated.  Thanks

Glen

1 vote



3 answers

Permanent link
there is no workitem common service.
there IS a workitem common class

it is not referenced in my plugin.xml

            if (auditable instanceof IWorkItem) {

                IAuditableCommon auditableCommon= saveParameter.getSaveOperationParameter().getAuditableCommon();
                IWorkItemCommon workItemCommon= auditableCommon.getPeer(IWorkItemCommon.class);

0 votes


Permanent link
Please check the prerequisites in the plugin.xml (see https://rsjazz.wordpress.com/2012/07/31/rtc-update-parent-duration-estimation-and-effort-participant/ image at the end of the post) and check the services you instantiate.

0 votes

Comments

Hi Ralph

I can't see the image you are referring to in your link.  Thanks

Glen

I fixed the link - wrong content in the cut buffer - my bad.

Why do you have an optional service?
Does the extension run on a Jetty Server already?


Permanent link

Ralph

Just to be up front my understanding of the plugin process is at a basic level. Also note I am fairly new to the Java language.   I successfully went through the RTC Extension Workshop 5.x.  I have been able to debug my participant using the Jetty Server process that was shown in the workshop.

 

What I am trying to do with my participant is when a user presses the Save button, I would like to get the data from targeted fields (both custom and built-in) on the workitem so I can update an external program with the data.  After searching this forum I realized there are many ways to accomplish this.  I found a piece of code on the fourm (see link above) authored by Hakki Bozkurt  that was marked as an accepted answer and appeared to fit what I was trying to do.

 

After adding the <RequiredService interface="com.ibm.team.workitem.service.IWorkItemCommon"/>  to the plugin.xml on my participant. And running the participant I receive the error you see in my initial post. I noticed after that in Hakki had set the service to be optional.  I changed my plugin.xml to reflect that.

 

When I reran the participant fired and stopped on the breakpoint I set, but when I stepped passed the line “IWorkItemCommon workItemService= (IWorkItemCommon) getService(IWorkItemCommon.class);” I received the exception:

 

The service 'ca.navcan.jazz.updatenesamr.participant.UpdateNesaMR@7e617e61' failed to find the required service 'interface com.ibm.team.workitem.common.IWorkItemCommon'.  Check <prerequisites> in plugin.xml.

 

Hopefully this gives a better explanation of my issue.  I’m sure I am missing something simple in my code, or there may be a more efficient way to accomplish the same thing. I’ve pasted the section of the code below.  Any help would be greatly appreciated.  Thanks

Glen

 

My code:

 

                        Object data = operation.getOperationData();

                        ISaveParameter saveParameter = null;

 

                        if (data instanceof ISaveParameter) {

                                    saveParameter = (ISaveParameter) data;

                                    IAuditable newState = saveParameter.getNewState();

                                    IAuditable oldState = saveParameter.getOldState();

                                    if (newState instanceof IAuditable) {

                                                IWorkItemCommon workItemService = (IWorkItemCommon) getService(IWorkItemCommon.class);// You to add this class in plugin.xml

 

                                                // loop through and get the field data we need

                                                while (i <= 17) {

                                                            IAttribute attribute = workItemService.findAttribute(

                                                                                    operation.getProcessArea().getProjectArea(),

                                                                                    jazzFieldId[i], monitor);

                                                            if (attribute instanceof IWorkItem){

                                                                        IWorkItem sourceWorkItem = (IWorkItem) attribute;

                                                                        workItemFields[i] = sourceWorkItem.getValue(attribute).toString(); // return object type data maybe you want to convert      

                                                            }

                                                }

                                                // see if this a new workitem

                                                if (oldState == null) { // its a new workitem

                                                            action = 0;

                                                } else {

                                                            action = 1;

                                                }

                                    }

                        }

 

 

0 votes

Your answer

Register or log in 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.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details
× 10,940

Question asked: Mar 03 '15, 11:05 a.m.

Question was seen: 4,426 times

Last updated: Mar 05 '15, 1:45 p.m.

Confirmation Cancel Confirm