This forum has been disabled. Please visit our new Help Desk at help.jitterbit.com

Cannot install plugin

Share, request and discuss pre-defined Jitterbit integrations and extensions.

Cannot install plugin

Postby trudyhlittle on Tue Oct 14, 2008 1:08 pm

I am attempting to write a Jitterbit plugin. I have built my project, created a sub directory under Jitterbit Integration Server\Plugins\Pipeline\User, placed my .jar and plugin.xml in the subdirectory and restarted the process engine but I still do not see the the plugin in the available plugins for any of my targets. I have included the plugin.xml. Thanks.

<?xml version="1.0" ?>
<JitterbitPlugin SpecVersion="1.0.0.0">
<PipelinePlugin SpecVersion="1.0.0.0">
<Name>org.jitterbit.plugin.DecodeBase64Plugin</Name>
<Version>1.0.0-beta</Version>
<DisplayName>Base64Decoder</DisplayName>
<Author>Trudy Little</Author>
<Description>Decodes Base64 data in transaction file and saves as file</Description>
<UpdateUrl></UpdateUrl>
<DocumentationUrl></DocumentationUrl>
<Command>C:\WINDOWS\SYSTEM32\java.exe</Command>
<Arguments>-jar "$(plugin.directory)DecodeBase64Plugin.jar"</Arguments>
<PipelinePosition Optional="True" Relative="Pre" ExecutionOrder="88">Target</PipelinePosition>
</PipelinePlugin>
</JitterbitPlugin>
trudyhlittle Bookmark and Share
Community Member
Community Member
 
Posts: 18
Joined: Thu Oct 02, 2008 1:57 pm

Re: Cannot install plugin

Postby emanuel on Tue Oct 14, 2008 4:30 pm

Hi,

I tried this using your plugin manifest (the plugin.xml file) and had no problems with it. After restarting the Process Engine you need to refresh the list of plugins in the client (or close the client and log in to the server again). Check for errors on the server in the file C:\Program Files\Jitterbit Integration Server\log\ProcessEngine.log. Note that what is shown in the UI is the display name ("Base64Decoder" in your case) and not the "unique name" (org.jitterbit.plugin.DecodeBase64Plugin).

/Emanuel
emanuel Bookmark and Share
Jitterbit Hero
Jitterbit Hero
 
Posts: 1320
Joined: Mon Feb 13, 2006 12:16 pm
Location: Alameda, CA

Re: Cannot install plugin

Postby trudyhlittle on Wed Oct 15, 2008 6:59 am

Although I would like to figure out the plugin development process, I am actually writing it to decode base 64 data coming in from my web service out to a file. When I read one of the forum items I originally thought that the incoming data had to have a line break after every 64 characters, which mine does not and I can not control. However after reading the post again, I believe that is no longer a requirement. I am using the following function transformation:

<trans>WriteFile("<TAG>NetDirector/Targets/FileDump</TAG>",Base64Decode(root$transaction$body$SubmitNetdTransation$xmlString$ATTACHMENTS$ATTACHMENT$FILE_BASE64_DATA$));FlushAllFiles()</trans>

I am getting a file, but it is incomplete. It is only 1 KB in size and I know it sould be much larger. I am able to decode the data using another utility and the file should be 56 KB.

If I remove te Base64Decode function and simply write the encoded text to a file, I get the entire contents OK.
trudyhlittle Bookmark and Share
Community Member
Community Member
 
Posts: 18
Joined: Thu Oct 02, 2008 1:57 pm

Re: Cannot install plugin

Postby trudyhlittle on Wed Oct 15, 2008 7:03 am

I did try refreshing the available plugins and restarting the client, but I can still only see the Jitterbit Prepend Data and Split CSV files plugins. My process log shows that I restarted the engine, but does no show any errors.
trudyhlittle Bookmark and Share
Community Member
Community Member
 
Posts: 18
Joined: Thu Oct 02, 2008 1:57 pm

Re: Cannot install plugin

Postby emanuel on Thu Oct 16, 2008 9:57 am

trudyhlittle wrote:Although I would like to figure out the plugin development process, I am actually writing it to decode base 64 data coming in from my web service out to a file. When I read one of the forum items I originally thought that the incoming data had to have a line break after every 64 characters, which mine does not and I can not control. However after reading the post again, I believe that is no longer a requirement. I am using the following function transformation:

<trans>WriteFile("<TAG>NetDirector/Targets/FileDump</TAG>",Base64Decode(root$transaction$body$SubmitNetdTransation$xmlString$ATTACHMENTS$ATTACHMENT$FILE_BASE64_DATA$));FlushAllFiles()</trans>

I am getting a file, but it is incomplete. It is only 1 KB in size and I know it sould be much larger. I am able to decode the data using another utility and the file should be 56 KB.

If I remove te Base64Decode function and simply write the encoded text to a file, I get the entire contents OK.


It seems that what you are doing should work. Could you give me the Base64 encoded text so I can test it?

/Cheers
Emanuel
emanuel Bookmark and Share
Jitterbit Hero
Jitterbit Hero
 
Posts: 1320
Joined: Mon Feb 13, 2006 12:16 pm
Location: Alameda, CA

Re: Cannot install plugin

Postby emanuel on Thu Oct 16, 2008 10:08 am

trudyhlittle wrote:I did try refreshing the available plugins and restarting the client, but I can still only see the Jitterbit Prepend Data and Split CSV files plugins. My process log shows that I restarted the engine, but does no show any errors.


That is strange considering that I could see it using your same plugin.xml. To verify that the plugin has been registered with the server you can connect to the PostgreSQL database (Start -> All Programs -> PostgreSQL 8.1 -> pgAdmin III) called TranDb. Check the contents of the table pluginstab. This table should have one entry for your plugin with the unique name in the pluginname field. If the file in pluginpath exists (relative to %JITTERBIT_HOME) you should see the plugin in the UI. Do you have any errors in the client after refreshing the plugin list (Help -> Application Logs)? What version of the server and the client are you using? Do you have any other 3d party plugins installed in either the User or the System directories?

/Cheers
Emanuel
emanuel Bookmark and Share
Jitterbit Hero
Jitterbit Hero
 
Posts: 1320
Joined: Mon Feb 13, 2006 12:16 pm
Location: Alameda, CA

Re: Cannot install plugin

Postby trudyhlittle on Fri Oct 17, 2008 10:44 am

I do see the plugin name in the table. I am using version 2.0.0.116 of the client and 2.0.0.79 of the server. I restarted my PC and it now appears. I did look at the logs for my previous session and didn't see any errors.

I have attached the file of the incoming xml stucture I am using to call my web service. The base64 is included. Thanks.
trudyhlittle Bookmark and Share
Community Member
Community Member
 
Posts: 18
Joined: Thu Oct 02, 2008 1:57 pm

Re: Cannot install plugin

Postby emanuel on Fri Oct 17, 2008 5:43 pm

Hi,

the reason why the data is not written completely is that the binary data contains zeroes. Jitterbit does not support transformation of binary data so when the decoded value is assigned to a string the zero (0) is interpreted as a string terminator and the rest of the data is discarded. There is not a lot to do about that since you can't have zeroes in a character string. We had the reverse problem once when someone wanted to read binary data from a file and load it as Base 64. We solved that by introducing a function Base64EncodeFile (see the documentation). You would need a function that does the reverse, WriteBase64ToFile that would write the correct binary data to the file. I will add a feature request for this. In the meantime you would have to write the data as Base 64 and convert it using a plugin.

/Cheers
Emanuel
emanuel Bookmark and Share
Jitterbit Hero
Jitterbit Hero
 
Posts: 1320
Joined: Mon Feb 13, 2006 12:16 pm
Location: Alameda, CA

Re: Cannot install plugin

Postby trudyhlittle on Mon Oct 20, 2008 8:14 am

OK. That's what I thought I would probably need to do. How do I tell if the plugin is running? I installed it on my target and redeployed the target. I am not getting any output from the plugin when I call my web service. The data is being written to the database, the target I installed the plugin to.
trudyhlittle Bookmark and Share
Community Member
Community Member
 
Posts: 18
Joined: Thu Oct 02, 2008 1:57 pm

Re: Cannot install plugin

Postby emanuel on Mon Oct 20, 2008 4:00 pm

Hi,

unless there is an error when running the plugin there is no special sign that the plugin has run. Do you have any errors in the operation log? You can go to the directory "C:\WINDOWS\Temp\jitterbit" and check for temporary folders there containing a file called input.xml which gets created when the plugin is called. What does your plugin do?

/Emanuel
emanuel Bookmark and Share
Jitterbit Hero
Jitterbit Hero
 
Posts: 1320
Joined: Mon Feb 13, 2006 12:16 pm
Location: Alameda, CA

Re: Cannot install plugin

Postby trudyhlittle on Tue Oct 21, 2008 7:17 am

Right now all the plugin does is write out any input files to the C drive. If there are no input files it writes out a file called empty.txt containing the text, "No files received". Eventually once I get it working it will save the decode the incoming encoded Base64 data to a documents directory. I also added logging using the LogMessageFactory, but I'm not seeing any log messages in any ofthe log files. I do not see the input.xml file in the jitterbit Temp directory and I do not see any error messages in any of the log files.
trudyhlittle Bookmark and Share
Community Member
Community Member
 
Posts: 18
Joined: Thu Oct 02, 2008 1:57 pm

Re: Cannot install plugin

Postby emanuel on Tue Oct 21, 2008 1:15 pm

Hi,

not sure what the problem could be, it seems like the plugin doesn't run. Please double check that the plugin is assigned to the correct target. The target has to be assigned to the operation that you are running. Target plugins don't run when you do test transformation or test operation from the UI. Then do a "deploy all" of your project and try again. Does the folder "C:\WINDOWS\Temp\jitterbit" exist at all? If not your system-wide temporary folder is elsewhere. We use the environment variable TMP to find a temporary directory. You need to look for a sub-folder of "C:\WINDOWS\Temp\jitterbit" called something like 1b1c7ae9-b3ff-4e15-8edf-3330a0cf5483 (a GUID). This folder should contain a file called input.xml and probably also stderr.txt and stdout.txt.

/Cheers
Emanuel
emanuel Bookmark and Share
Jitterbit Hero
Jitterbit Hero
 
Posts: 1320
Joined: Mon Feb 13, 2006 12:16 pm
Location: Alameda, CA

Re: Cannot install plugin

Postby trudyhlittle on Wed Oct 22, 2008 7:28 am

I am testing the hosted web service from a java client. I have confirmed in the System Operation Log that my operation is running successfully. I have confirmed that the first transformation contains the target I have assigned the plugin to. I also did a view dependencies on the target and confirmed it is pointing the the transformation and that the transformation is pointing to the operation. I have done a deploy Everything. When calling the web service from my java client and the plugin still does not run. I have the C:\WINDOWS\Temp\jitterbit directory. It's only contents are a directory called CachedTargets, which is empty. I also tried changing the plugin to run on the web service response, but it did not run there either. I even tried restarting my computer.

I am running Version=2.0.0.79-trial of the server. Are they any restrictions on the trial version?
trudyhlittle Bookmark and Share
Community Member
Community Member
 
Posts: 18
Joined: Thu Oct 02, 2008 1:57 pm

Re: Cannot install plugin

Postby emanuel on Wed Oct 22, 2008 10:26 am

Hi,

the trial has no limitations in functionality. You are saying that you are calling a hosted web service, but hosted web services can't have a target so I don't know how you could assign a plugin to it. Could you send me the jitterpak so I can have a look at your configuration? You can email it to support@jitterbit.com if you don't want to post it on the forum. If you need to run the plugin to decode some Base64 you can write the data to a global variable and then run the plugin in a success operation (or by calling out to it with RunOperation). You should also be able to assign the plugin to the Web Service Method. You can choose to call it on request and on response.

To verify that the plugin assignment has been registered on the server you can connect to the database called TranDb (use Start -> All Programs -> PostgreSQL 8.1 -> pgAdmin III) and check the contents of the tables pipelineplugininstancetab and pipelinepluginpositiontab. You should have one entry in each for each plugin that you have assigned.

/Cheers
Emanuel
emanuel Bookmark and Share
Jitterbit Hero
Jitterbit Hero
 
Posts: 1320
Joined: Mon Feb 13, 2006 12:16 pm
Location: Alameda, CA

Re: Cannot install plugin

Postby trudyhlittle on Thu Oct 23, 2008 11:37 am

I checked both tables and there is an entry in both from the plugin ID. I have included my jitterpak. I also include the web service WSDL. I'm not sure if you need that or not. I am calling the NetdDocumentTranWS. Thanks.
trudyhlittle Bookmark and Share
Community Member
Community Member
 
Posts: 18
Joined: Thu Oct 02, 2008 1:57 pm

Next

Return to Jitterpaks & Plugins


cron
SourceForge.net Logo  open source integration