Introduction
Note: The following Integration Guide is aimed at OFBiz Developers with a Basic Knowledge of the actual System.
Integration StepsSteps
Step 1 Add a service definition file to your application
(Skip if a service.xml file is already existent)
Create a new service.xml file in your appication directory (i created it in an extra folder: servicedef) and add the very same to the ofbizcomponent.xml file --> e.g. by adding:
<service-resource type="model" loader="main" location="servicedef/services.xml"/>
Step 2
Open the service.xml file and add:
[...] <\!-\- CMS Services \--> <service name="runCMSQuery" engine="java" transaction-timeout="72000" location="org.brandsparadise.cms.Magnolia" invoke="runCMSQuery" debug="true" validate="true"> <description>Run a query on CMS and return the results</description> <attribute mode="IN" name="query" optional="false" type="String" /> <attribute name="queryResult" type="String" mode="OUT" optional="true"/> </service> [...]
(take a look at any other service.xml file on the exact layout of a service.xml file)
Step 3
Create a new src folder and load the sources via ofbiz-component.xml:
<classpath type="dir" location="src/*" />
Step 4
Create a new package and call it any name you like (I called mine: org.brandsparadise.cms). Add a class to it (i called mine: Magnolia.java) and add something along the line of :
package org.brandsparadise.cms; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.util.Map; import java.net.*; import junit.framework.TestCase; import org.ofbiz.service.DispatchContext; import org.ofbiz.service.ServiceUtil; /*\* * Base class for OFBiz Test Tools test case implementations. \*/ public abstract class Magnolia extends TestCase { public static final String module = Magnolia.class.getName(); public static String cmsUrl = "http://www.google.com"; /*\* * runs a query on a url and return the results \* \*/ public static Map runCMSQuery(DispatchContext dctx, Map context) { try { // get Connection StringBuilder result = new StringBuilder(); byte\[\] buffer = new byte[8192]; InputStream s; URL url = new URL(cmsUrl + context.get("query").toString()); s = url.openStream(); int size = 0; do { size = s.read(buffer); if (size != -1) result.append(new String(buffer, 0, size)); } while (size \!= \-1); context = ServiceUtil.returnSuccess(); context.put("queryResult", result.toString()); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); context = ServiceUtil.returnError(e.toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); context = ServiceUtil.returnError(e.toString()); } // Debug.log("Query Result: "+results.toString()); return context; } public static void main(String\[\] args) { junit.textui.TestRunner.run(Magnolia.class); System.exit(0); } }