How to configure Integration Studio to work with .NET and Java / J2EE extensions

How to configure Integration Studio to work with .NET and Java / J2EE extensions

  

Permalink: www.outsystems.com/goto/howto-configure-integration-studio



Integration Studio is the Agile Platform tool you should use when making low level integrations. This tool allows you to connect with entities from other databases (through Service Center defined Database Connections) and also to define Actions whose operation is determined in "low level" Java or .NET code.


In this post I will guide you through what configurations are needed to allow you to correctly compile and develop Java or .NET source code in Integration Studio.


Where and what to configure

In the Edit -> Options Menu you will find a tab for each framework (J2EE and .NET) where you can configure the following options for each:

  • Integrated Development Environment
  • Compiler Tool
  • Compiler Tool Options
  • Java Home (Java only)

In order to be able to compile extensions with a certain Application Server type, you'll need to correctly configure the Compiler Tool (and possibly the options). In order to be able to Edit the Source code of an extension with a certain Application Server type, you'll need to correctly configure the Integrated Development Environment for that Application Server type.


Configuring .NET

What's required?

  • Microsoft .NET Framework 2.0 (OutSystems 5.0-) or 3.5 (OutSystems 5.1 thru 8.0)
  • Microsoft .NET Framework 4.0 (OutSystems 9.0+)
  • Visual Studio 2008 or 2010 (OutSystems 6.0+ only). If using the Express version, install Visual Express C#.

With these installed the default options in Integration Studio should work. You can always use Reset Settings to replace them.

In case the defaults don't work use the following:

  • Compiler Tool should point to your MSBuild.exe, usually found in "C:\Windows\Microsoft.NET\Framework\v<VERSION>\"
  • Integrated Development Environment should point to your devenv.exe, by default located in "c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"
  • Compiler Tool Options: just leave the defaults, unless you know exactly what you are doing.


Configuring J2EE

What's required?

Java SDK is installed normally; for ANT and Eclipse, simply download the ZIP file and extract them to a folder of your choice.


Regarding Eclipse, if you are using Windows Vista or 7 and have UAC enabled (the default) unzip eclipse to a folder outside "Program Files" - this will avoid privileges problems when writing to C:\Program Files\.

Suggestion: create a "C:\opt" folder and put both ANT and Eclipse in it (C:\opt\apache-ant-1.8.4 and C:\opt\eclipse).


To configure ANT and JAVA for Eclipse you need to create system environment variables for their installation paths.

The variables that need to be created are JAVA_HOME and ANT_HOME; for example, your JAVA_HOME could have a value of C:\Program Files\Java\jdk1.6.0_45 and your ANT_HOME could have a value of C:\opt\apache-ant-1.8.4.


After setting the environment variables, you need to perform the following configurations in Integration Studio (Edit -> Options):

  • Integrated Development Environment: path to your eclipse.exe file
  • Compiler Tool: path to the ant.bat script inside ANT_HOME/bin/
  • Compiler Tool Options: you shouldn't need to fill this in
  • Java Home: path to the JAVA_HOME directory.


Now you should be able to build .NET and Java extensions.


Happy Integrations !


If you have any questions related to this topic, feel free to ask them.


Best regards,

Ricardo Silva

What is Integration Studio ? Is it a separate product or Outsystems ?
OLEG YAVO wrote:
What is Integration Studio ? Is it a separate product or Outsystems ?
 There are two Outsystems products that you can use...

Outsystems Service Studio -  allows you to build and publish your application and 
Outsystems Integration Studio - allows you to extend the existing functionality and data model of Outsystems Platform.
 
Cool ! Thanks a lot !
Hi,

I followed your instructions and I got the following error-messages in eclipse (if I test it with just opening httprequesthandler.xif)

Project 'J2EE' is missing required library: '\RuntimePlatform\lib\commons-fileupload-1.2.1.jar'
Project 'J2EE' is missing required Java project: 'RuntimeCommon'
Project 'J2EE' is missing required Java project: 'RuntimePlatform'
Project 'J2EE' is missing required Java project: 'RuntimeUtil'
The project cannot be built until build path errors are resolved
 
Do you know of any lightweight version of Visual Studio one can downlaod for free? Thank you!
Microsoft has express versions of most of it's development products.  A simple Google search shows the following - http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-8 - which gets you the latest version, 2013.  It may be better to use the 2010 version as it will probably be more compatible.  There is a link at the top of that page for that.
Hi I am trying a couple of extensions to be published in but I am not able to due to this error:

.NET Compilation.

XmlRecords.cs(38,121): warning CS1573: Parameter 'ssDefaultConfig' has no matching param tag in the XML comment for 'OutSystems.NssXmlRecords.CssXmlRecords.MssRecordListToXml(object, OutSystems.NssXmlRecords.RLRecordXmlConfigRecordList, OutSystems.NssXmlRecords.RCDefaultXmlConfigRecord, bool, out string)' (but other parameters do) [C:\Users\CarlosE.MISNET\Desktop\XML.Records-1.5.5\Source\NET\XmlRecords.csproj]
XmlRecords.cs(38,143): warning CS1573: Parameter 'ssAddRootNode' has no matching param tag in the XML comment for 'OutSystems.NssXmlRecords.CssXmlRecords.MssRecordListToXml(object, OutSystems.NssXmlRecords.RLRecordXmlConfigRecordList, OutSystems.NssXmlRecords.RCDefaultXmlConfigRecord, bool, out string)' (but other parameters do) [C:\Users\CarlosE.MISNET\Desktop\XML.Records-1.5.5\Source\NET\XmlRecords.csproj]
XmlRecords.cs(90,113): warning CS1573: Parameter 'ssDefaultConfig' has no matching param tag in the XML comment for 'OutSystems.NssXmlRecords.CssXmlRecords.MssRecordToXml(object, OutSystems.NssXmlRecords.RLRecordXmlConfigRecordList, OutSystems.NssXmlRecords.RCDefaultXmlConfigRecord, out string)' (but other parameters do) [C:\Users\CarlosE.MISNET\Desktop\XML.Records-1.5.5\Source\NET\XmlRecords.csproj]
XmlRecords.cs(116,97): warning CS1573: Parameter 'ssXmlConfig' has no matching param tag in the XML comment for 'OutSystems.NssXmlRecords.CssXmlRecords.MssXmlToRecordList(string, object, OutSystems.NssXmlRecords.RLRecordXmlConfigRecordList, bool, string, OutSystems.NssXmlRecords.RCDefaultXmlConfigRecord, bool)' (but other parameters do) [C:\Users\CarlosE.MISNET\Desktop\XML.Records-1.5.5\Source\NET\XmlRecords.csproj]
XmlRecords.cs(116,115): warning CS1573: Parameter 'ssIgnoreXMLDeclarationAndNS' has no matching param tag in the XML comment for 'OutSystems.NssXmlRecords.CssXmlRecords.MssXmlToRecordList(string, object, OutSystems.NssXmlRecords.RLRecordXmlConfigRecordList, bool, string, OutSystems.NssXmlRecords.RCDefaultXmlConfigRecord, bool)' (but other parameters do) [C:\Users\CarlosE.MISNET\Desktop\XML.Records-1.5.5\Source\NET\XmlRecords.csproj]
XmlRecords.cs(116,151): warning CS1573: Parameter 'ssAttributePrefix' has no matching param tag in the XML comment for 'OutSystems.NssXmlRecords.CssXmlRecords.MssXmlToRecordList(string, object, OutSystems.NssXmlRecords.RLRecordXmlConfigRecordList, bool, string, OutSystems.NssXmlRecords.RCDefaultXmlConfigRecord, bool)' (but other parameters do) [C:\Users\CarlosE.MISNET\Desktop\XML.Records-1.5.5\Source\NET\XmlRecords.csproj]
XmlRecords.cs(116,195): warning CS1573: Parameter 'ssDefaultConfig' has no matching param tag in the XML comment for 'OutSystems.NssXmlRecords.CssXmlRecords.MssXmlToRecordList(string, object, OutSystems.NssXmlRecords.RLRecordXmlConfigRecordList, bool, string, OutSystems.NssXmlRecords.RCDefaultXmlConfigRecord, bool)' (but other parameters do) [C:\Users\CarlosE.MISNET\Desktop\XML.Records-1.5.5\Source\NET\XmlRecords.csproj]
XmlRecords.cs(116,217): warning CS1573: Parameter 'ssBypassRootRecordListNode' has no matching param tag in the XML comment for 'OutSystems.NssXmlRecords.CssXmlRecords.MssXmlToRecordList(string, object, OutSystems.NssXmlRecords.RLRecordXmlConfigRecordList, bool, string, OutSystems.NssXmlRecords.RCDefaultXmlConfigRecord, bool)' (but other parameters do) [C:\Users\CarlosE.MISNET\Desktop\XML.Records-1.5.5\Source\NET\XmlRecords.csproj]
  XmlRecords -> C:\Users\CarlosE.MISNET\Desktop\XML.Records-1.5.5\Source\NET\bin\OutSystems.NssXmlRecords.dll

What could have I missed?
I'm not sure about this, but looks like a problem with the documentation of one of the methods in the extension.

In .NET you can use XML elements to document your code. The problem seems to be that in the documentation of the RecordListToXML method, there is an open XML tag that is never closed, or a parameter that doesn't have documentation.

"Parameter 'ssAddRootNode' has no matching param tag in the XML comment"

Looks like you have two options:
  • Fix the documention;
  • Try to find a way to compile the code and ignore the documentation.
Tried publish a java extension. It fails compiling.  Doesn't say why this fails.  I followed the video at http://www.outsystems.com/videos/integration/extend-platform-with-your-own-code/

Error while publishing extension
Hi Loki,

Have you tried clicking on the "Compiler Error - J2EE Compilation" row on that window?
When you click on it, it should display what's causing the error.


After  restarting the integration studio, it started working fine.. I had not restarted integration studio after setting up the IDE options. Not sure if it requires a restart, but it works fine now and i am able to publish the extension
Yes, a restart is necessary. I encountered the same problem, error disappeared after restart.
Could this thread be updated with the newest Visual Studio and Outsystems versions?
Hello, the information on the initial post has been updated to reflect the required versions as of version 9 of the OutSystems Platform.
Thank you for the fast reply / update.

Hi Ricardo,

I have set up the Net configurations has you suggested but I'm still receiving the pop up that said "Integration Studio options are not correctly defined"

could you please give me a suggestion for the field:
 - compare files using
 - Proxy Authentication

Current setup:



Thanks

Simon

Hi Simon,

Verify if the Application Server of your extension is set to "Both". If this case, Integration Studio will force you to fill the development enviroment informantion of both .NET and JAVA on the options. You must set the the Application Server of the extension to .NET.

 
What about the new Java/J2EE configurations/requirements for 9.1?

I'm guessing they are different now, since Java 8 was a breaking change to 9.1

Best regards,
PC
Hi Pedro,

You’re right.
You can change the Java home to a JDK 8 path on your machine and you’re okay again.
That’s the only thing to change :)

Kind regards,
Martijn
Any particular version of jdk required? Or can be any of the latest (8u65 / 8u66)?

Best regards,
PC
I installed the 8u65 version and that works.
I'm currently testing (with sucess) the 8u66 :)

So it all works ;)

Best regards,
PC
Hello there,
I am using Integration Studio 9.1.300.0 and Eclipse 4.5.2 and when I press the "Edit source code..." eclipse opens but nothing is generated. I only have an "Action" defined. Do I also need a structure? 
Are you creating or editing an extension?

Best regards,
PC
Creating.

Thanks in advance
Then that is the expected behaviour, you now need to start to input your code :)

Best regards,
PC
But I have to create a new file etc in eclipse. How it's then linked to Outsystems Integration Studio?
Check out point 7 (integrating with other systems) from the  http://www.outsystems.com/academy/14/mastering-outsystems/

Best regards,
PC
Is it possible to use IntelliJ instead of Eclipse? 
Kenneth Hommel wrote:
Is it possible to use IntelliJ instead of Eclipse? 
 
 That is a question I'ld like to hear the answer too :)

Best regards,
PC
Hi Guys,

This question has been poping up lately as well as "Can I use Maven instead of ant as the build tool"?

For both question the answer is no. As per the OutSystems Platform System Requirements only Eclipse and ant are supported.

This happens because the files generated (project files, build scripts, etc) are targeted at those two tools specifically.

Hope this clarifes,
Guilherme
BTW, when Integration Studio launches Eclipse, there is always a Dummy.java file in the same folder and the Action java files.  Is this Dummy.java file needed for anything?
Hi Bill,

It's an implementation detail, it is used as a placeholder to make sure the namespace for that folder always exist even when you don't have any action/entity/structure. It just makes the code generation simpler.
Hi,
I am using integration studio 9.1.4,jdk1.8.0_73,apache-ant-1.9.7 And Eclipse Mars.But After configuring when i was trying to compile its showing J2EE Compilation error and when click of that error its showing some Build failed.I have restarted also but getting the same error.Can someone please guide me.Please find attached sheet for more details.

Is there an update for the newer versions of Integration Studio?   I was able to figure it out again, but it looks like the inputs have been changing.

Hello Rebecca,

Nothing changed for .NET, and Java simply added the possibility to define the Java Home.

I'll update the original post to cover for that.

Hi, I'm trying to configure Integration Studio for Java/J2EE but a couple of problems ... 

1) the link for creating system environment variables results in the error "Payment required"
But I found another site that explained it to me.


2) skipping that part, the following error occurs after having installend ANT and Eclipse and trying to apply the configurtaion:


This is how my Eclipse installation directory looks like ...

By the way ... I had to choose which package of Eclipse to download ... I chose the first one, the Java EE version.

I deleted the (unpacked zip) installation of Eclipse, re-installed eclipse using the installer, and tried again to configure Integration Studio for J2EE / Oracle ... same result .., "Error copying Integration Plugin into Eclipse plugin directory".

Please help!


Hi Charley,


Can you try by running Integration Studio as administrator to see if it helps?

Also, in this last installation does it also have a "plugins" folder there?


Regards,

João Rosado

Hi Joao, thnx for replying.

Just solved the problem myself ... I had to specify the full path to eclipse, including eclipse.exe, and also the full path to the ant.bat file ... my first tries were the path names without the filenames themselves. 

Working now, and successfully created my fist extension :-)

I have set everything up as said in the instruction but when I try to open the java code for editing, no project opens up in the eclipse, only eclipse shows up. I don't get any errors or anything and if I try to open the project directly from folder in eclipse, then after writing the code when I close the eclipse or publish the extension, all of the code that I have written gets deleted. Any Idea what could be causing this?

Note: I'm using Eclipse Neon and my Integration studio version is 9.1.6

Hi,


So from what I tested and here are some problems that can cause the "plugin" problems and how to fix them.
The differences depend on either: eclipse version, installation folder, what eclipse type installed or how it was installed (via installer or zip)


Cause 1: Eclipse is installed in the Program Files and integration Studio cannot install the plugin it needs
Symptoms: There is no error closing the preferences window, but eclipse opens without a project
Solution: Run Integration studio in Administrator Mode and change the eclipse path in the preferences window. Check if inside the eclipse folder there is a "\plugins\outsystems.integration.plugin\" directory created after that


Cause 2: Eclipse is configured to not use its own folder as Data Folder.
Symptoms: Either there is no "\plugins\" folder and Integration Studio gives an error
Solution: Create a "\plugins\" folder inside the eclipse directory, change the eclipse path in the preferences window. Check if inside the eclipse folder there is a "\plugins\outsystems.integration.plugin\" directory created after that


Regardless of what issue it was, if there is still no project inside eclipse after it opens, then go copy the "outsystems.integration.plugin" directory from "\plugins\" to "\dropins\"


Tell me if it any of these solutions works for you.


Regards,
João Rosado