IDEMPIERE-4955 Add Rest+Json support to iDempiere Web Services (#873)
This commit is contained in:
parent
55af0b0db3
commit
4b8af33c4e
|
@ -197,6 +197,7 @@
|
||||||
<setEntry value="org.apache.xml.resolver@default:default"/>
|
<setEntry value="org.apache.xml.resolver@default:default"/>
|
||||||
<setEntry value="org.apache.xml.serializer@default:default"/>
|
<setEntry value="org.apache.xml.serializer@default:default"/>
|
||||||
<setEntry value="org.atmosphere.runtime@default:default"/>
|
<setEntry value="org.atmosphere.runtime@default:default"/>
|
||||||
|
<setEntry value="org.codehaus.jettison.jettison@default:default"/>
|
||||||
<setEntry value="org.cryptacular@default:default"/>
|
<setEntry value="org.cryptacular@default:default"/>
|
||||||
<setEntry value="org.eclipse.ant.core@default:default"/>
|
<setEntry value="org.eclipse.ant.core@default:default"/>
|
||||||
<setEntry value="org.eclipse.core.commands@default:default"/>
|
<setEntry value="org.eclipse.core.commands@default:default"/>
|
||||||
|
|
|
@ -201,6 +201,7 @@
|
||||||
<setEntry value="org.apache.xml.resolver@default:default"/>
|
<setEntry value="org.apache.xml.resolver@default:default"/>
|
||||||
<setEntry value="org.apache.xml.serializer@default:default"/>
|
<setEntry value="org.apache.xml.serializer@default:default"/>
|
||||||
<setEntry value="org.atmosphere.runtime@default:default"/>
|
<setEntry value="org.atmosphere.runtime@default:default"/>
|
||||||
|
<setEntry value="org.codehaus.jettison.jettison@default:default"/>
|
||||||
<setEntry value="org.cryptacular@default:default"/>
|
<setEntry value="org.cryptacular@default:default"/>
|
||||||
<setEntry value="org.eclipse.ant.core@default:default"/>
|
<setEntry value="org.eclipse.ant.core@default:default"/>
|
||||||
<setEntry value="org.eclipse.core.commands@default:default"/>
|
<setEntry value="org.eclipse.core.commands@default:default"/>
|
||||||
|
|
|
@ -834,6 +834,12 @@ Export-Package: *;version="${version}";-noimport:=true
|
||||||
<version>3.1.18</version>
|
<version>3.1.18</version>
|
||||||
<type>jar</type>
|
<type>jar</type>
|
||||||
</location>
|
</location>
|
||||||
|
<location includeSource="true" missingManifest="generate" type="Maven">
|
||||||
|
<groupId>org.codehaus.jettison</groupId>
|
||||||
|
<artifactId>jettison</artifactId>
|
||||||
|
<version>1.4.1</version>
|
||||||
|
<type>jar</type>
|
||||||
|
</location>
|
||||||
<location includeSource="true" missingManifest="generate" type="Maven">
|
<location includeSource="true" missingManifest="generate" type="Maven">
|
||||||
<groupId>org.dom4j</groupId>
|
<groupId>org.dom4j</groupId>
|
||||||
<artifactId>dom4j</artifactId>
|
<artifactId>dom4j</artifactId>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<?pde?>
|
<?pde?>
|
||||||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
|
||||||
<target name="idempiere-210901" sequenceNumber="1630461774">
|
<target name="idempiere-210901" sequenceNumber="1631278143">
|
||||||
<locations>
|
<locations>
|
||||||
<location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
<location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
|
||||||
<unit id="zcommon" version="9.6.0.1"/>
|
<unit id="zcommon" version="9.6.0.1"/>
|
||||||
|
@ -967,6 +967,12 @@ Export-Package: *;version="${version}";-noimport:=true
|
||||||
<version>3.1.18</version>
|
<version>3.1.18</version>
|
||||||
<type>jar</type>
|
<type>jar</type>
|
||||||
</location>
|
</location>
|
||||||
|
<location includeSource="true" missingManifest="generate" type="Maven">
|
||||||
|
<groupId>org.codehaus.jettison</groupId>
|
||||||
|
<artifactId>jettison</artifactId>
|
||||||
|
<version>1.4.1</version>
|
||||||
|
<type>jar</type>
|
||||||
|
</location>
|
||||||
<location includeSource="true" missingManifest="generate" type="Maven">
|
<location includeSource="true" missingManifest="generate" type="Maven">
|
||||||
<groupId>org.dom4j</groupId>
|
<groupId>org.dom4j</groupId>
|
||||||
<artifactId>dom4j</artifactId>
|
<artifactId>dom4j</artifactId>
|
||||||
|
|
|
@ -159,6 +159,7 @@
|
||||||
<setEntry value="org.apache.xml.serializer@default:default"/>
|
<setEntry value="org.apache.xml.serializer@default:default"/>
|
||||||
<setEntry value="org.apiguardian@default:default"/>
|
<setEntry value="org.apiguardian@default:default"/>
|
||||||
<setEntry value="org.atmosphere.runtime@default:default"/>
|
<setEntry value="org.atmosphere.runtime@default:default"/>
|
||||||
|
<setEntry value="org.codehaus.jettison.jettison@default:default"/>
|
||||||
<setEntry value="org.cryptacular@default:default"/>
|
<setEntry value="org.cryptacular@default:default"/>
|
||||||
<setEntry value="org.eclipse.ant.core@default:default"/>
|
<setEntry value="org.eclipse.ant.core@default:default"/>
|
||||||
<setEntry value="org.eclipse.core.commands@default:default"/>
|
<setEntry value="org.eclipse.core.commands@default:default"/>
|
||||||
|
|
|
@ -332,4 +332,11 @@
|
||||||
version="0.0.0"
|
version="0.0.0"
|
||||||
unpack="false"/>
|
unpack="false"/>
|
||||||
|
|
||||||
|
<plugin
|
||||||
|
id="org.codehaus.jettison.jettison"
|
||||||
|
download-size="0"
|
||||||
|
install-size="0"
|
||||||
|
version="0.0.0"
|
||||||
|
unpack="false"/>
|
||||||
|
|
||||||
</feature>
|
</feature>
|
||||||
|
|
|
@ -105,7 +105,8 @@ Require-Bundle: org.adempiere.base;bundle-version="0.0.0",
|
||||||
wrapped.org.springframework.spring-core;bundle-version="5.2.15",
|
wrapped.org.springframework.spring-core;bundle-version="5.2.15",
|
||||||
wrapped.org.springframework.spring-expression;bundle-version="5.2.15",
|
wrapped.org.springframework.spring-expression;bundle-version="5.2.15",
|
||||||
wrapped.org.apache.xmlbeans.xmlbeans;bundle-version="3.1.0",
|
wrapped.org.apache.xmlbeans.xmlbeans;bundle-version="3.1.0",
|
||||||
wrapped.org.springframework.spring-web;bundle-version="5.2.15"
|
wrapped.org.springframework.spring-web;bundle-version="5.2.15",
|
||||||
|
org.codehaus.jettison.jettison;bundle-version="1.4.1"
|
||||||
Bundle-ClassPath: .,
|
Bundle-ClassPath: .,
|
||||||
lib/idempiere-xmlbeans.jar
|
lib/idempiere-xmlbeans.jar
|
||||||
Export-Package: org.compiere.model,
|
Export-Package: org.compiere.model,
|
||||||
|
|
|
@ -19,6 +19,7 @@ http://cxf.apache.org/schemas/jaxrs.xsd">
|
||||||
</jaxrs:serviceBeans>
|
</jaxrs:serviceBeans>
|
||||||
<jaxrs:providers>
|
<jaxrs:providers>
|
||||||
<ref bean="xmlBeansProvider" />
|
<ref bean="xmlBeansProvider" />
|
||||||
|
<ref bean="xmlBeansJSONProvider" />
|
||||||
</jaxrs:providers>
|
</jaxrs:providers>
|
||||||
</jaxrs:server>
|
</jaxrs:server>
|
||||||
|
|
||||||
|
@ -27,4 +28,7 @@ http://cxf.apache.org/schemas/jaxrs.xsd">
|
||||||
|
|
||||||
<bean id="xmlBeansProvider"
|
<bean id="xmlBeansProvider"
|
||||||
class="org.apache.cxf.jaxrs.provider.xmlbeans.XMLBeansElementProvider" />
|
class="org.apache.cxf.jaxrs.provider.xmlbeans.XMLBeansElementProvider" />
|
||||||
|
|
||||||
|
<bean id="xmlBeansJSONProvider"
|
||||||
|
class="org.idempiere.jaxrs.provider.xmlbeans.XMLBeansJSONProvider" />
|
||||||
</beans>
|
</beans>
|
|
@ -49,8 +49,8 @@ import org.idempiere.adInterface.x10.StandardResponseDocument;
|
||||||
import org.idempiere.adInterface.x10.WindowTabDataDocument;
|
import org.idempiere.adInterface.x10.WindowTabDataDocument;
|
||||||
|
|
||||||
@Path("/model_adservice/")
|
@Path("/model_adservice/")
|
||||||
@Consumes("application/xml")
|
@Consumes({"application/xml", "application/json"})
|
||||||
@Produces("application/xml")
|
@Produces({"application/xml", "application/json"})
|
||||||
@WebService(targetNamespace="http://idempiere.org/ADInterface/1_0")
|
@WebService(targetNamespace="http://idempiere.org/ADInterface/1_0")
|
||||||
@SOAPBinding(style=Style.RPC,use=Use.LITERAL,parameterStyle=ParameterStyle.WRAPPED)
|
@SOAPBinding(style=Style.RPC,use=Use.LITERAL,parameterStyle=ParameterStyle.WRAPPED)
|
||||||
public interface ModelADService {
|
public interface ModelADService {
|
||||||
|
|
|
@ -0,0 +1,201 @@
|
||||||
|
/***********************************************************************
|
||||||
|
* This file is part of iDempiere ERP Open Source *
|
||||||
|
* http://www.idempiere.org *
|
||||||
|
* *
|
||||||
|
* Copyright (C) Contributors *
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or *
|
||||||
|
* modify it under the terms of the GNU General Public License *
|
||||||
|
* as published by the Free Software Foundation; either version 2 *
|
||||||
|
* of the License, or (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with this program; if not, write to the Free Software *
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, *
|
||||||
|
* MA 02110-1301, USA. *
|
||||||
|
* *
|
||||||
|
* Contributors: *
|
||||||
|
* - hengsin *
|
||||||
|
**********************************************************************/
|
||||||
|
package org.idempiere.jaxrs.provider.xmlbeans;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author hengsin
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.lang.annotation.Annotation;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.Produces;
|
||||||
|
import javax.ws.rs.WebApplicationException;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
import javax.ws.rs.core.MultivaluedMap;
|
||||||
|
import javax.ws.rs.ext.Provider;
|
||||||
|
import javax.xml.stream.XMLOutputFactory;
|
||||||
|
import javax.xml.stream.XMLStreamException;
|
||||||
|
import javax.xml.stream.XMLStreamReader;
|
||||||
|
import javax.xml.stream.XMLStreamWriter;
|
||||||
|
|
||||||
|
import org.apache.cxf.jaxrs.provider.xmlbeans.XMLBeanStreamSerializer;
|
||||||
|
import org.apache.cxf.jaxrs.provider.xmlbeans.XMLBeansElementProvider;
|
||||||
|
import org.apache.xmlbeans.XmlObject;
|
||||||
|
import org.codehaus.jettison.mapped.Configuration;
|
||||||
|
import org.codehaus.jettison.mapped.MappedXMLOutputFactory;
|
||||||
|
import org.idempiere.jettison.mapped.CustomMappedNamespaceConvention;
|
||||||
|
import org.idempiere.jettison.mapped.MappedXMLInputFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JSON provider for XMLBeans data objects.
|
||||||
|
*/
|
||||||
|
@Produces("application/json")
|
||||||
|
@Consumes("application/json")
|
||||||
|
@Provider
|
||||||
|
public class XMLBeansJSONProvider extends XMLBeansElementProvider {
|
||||||
|
|
||||||
|
private static final String AD_INTERFACE_1_0_NAMESPACE = "http://idempiere.org/ADInterface/1_0";
|
||||||
|
|
||||||
|
/** {@inheritDoc} */
|
||||||
|
@Override
|
||||||
|
public XmlObject readFrom(Class<XmlObject> type, Type genericType,
|
||||||
|
Annotation[] annotations, MediaType m,
|
||||||
|
MultivaluedMap<String, String> headers, InputStream is)
|
||||||
|
throws IOException {
|
||||||
|
XmlObject result = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
Map<String, String> nstojns = new HashMap<String, String>();
|
||||||
|
nstojns.put(AD_INTERFACE_1_0_NAMESPACE, "");
|
||||||
|
|
||||||
|
Configuration conf = new Configuration(nstojns);
|
||||||
|
conf.setIgnoreNamespaces(false);
|
||||||
|
CustomMappedNamespaceConvention convention = new CustomMappedNamespaceConvention(conf);
|
||||||
|
convention.addNamespacePrefix("i", AD_INTERFACE_1_0_NAMESPACE);
|
||||||
|
MappedXMLInputFactory factory = new MappedXMLInputFactory(convention);
|
||||||
|
XMLStreamReader xsr = factory.createXMLStreamReader(is);
|
||||||
|
result = parseXmlBean(type, xsr);
|
||||||
|
|
||||||
|
xsr.close();
|
||||||
|
} catch (XMLStreamException e) {
|
||||||
|
throw new WebApplicationException(HttpURLConnection.HTTP_INTERNAL_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an XMLBean data object using a stream <code>Reader</code>
|
||||||
|
*
|
||||||
|
* @param type declared type of the desired XMLBean data object
|
||||||
|
* @param reader
|
||||||
|
* @return an instance of the required object, otherwise null
|
||||||
|
*/
|
||||||
|
protected XmlObject parseXmlBean(Class<?> type, XMLStreamReader xsr) {
|
||||||
|
XmlObject result = null;
|
||||||
|
|
||||||
|
Class<?> factory = getFactory(type);
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
// get factory method parse(InputStream)
|
||||||
|
Method m = factory.getMethod("parse", XMLStreamReader.class);
|
||||||
|
Object[] args = {xsr};
|
||||||
|
Object obj = m.invoke(type, args);
|
||||||
|
|
||||||
|
if (obj instanceof XmlObject) {
|
||||||
|
result = (XmlObject)obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (NoSuchMethodException nsme) {
|
||||||
|
nsme.printStackTrace();
|
||||||
|
} catch (InvocationTargetException ite) {
|
||||||
|
ite.printStackTrace();
|
||||||
|
} catch (IllegalAccessException iae) {
|
||||||
|
iae.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Locate the XMLBean <code>Factory</code> inner class.
|
||||||
|
*
|
||||||
|
* @param type
|
||||||
|
* @return the Factory class if present, otherwise null.
|
||||||
|
*/
|
||||||
|
private Class<?> getFactory(Class<?> type) {
|
||||||
|
Class<?> result = null;
|
||||||
|
|
||||||
|
Class<?>[] declared = type.getDeclaredClasses();
|
||||||
|
for (Class<?> c : declared) {
|
||||||
|
|
||||||
|
if (c.getSimpleName().equals("Factory")) {
|
||||||
|
result = c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result == null) {
|
||||||
|
Class<?>[] interfaces = type.getInterfaces();
|
||||||
|
|
||||||
|
// look for XMLBeans inner class Factory
|
||||||
|
for (Class<?> inter : interfaces) {
|
||||||
|
|
||||||
|
declared = inter.getDeclaredClasses();
|
||||||
|
|
||||||
|
for (Class<?> c : declared) {
|
||||||
|
|
||||||
|
if (c.getSimpleName().equals("Factory")) {
|
||||||
|
result = c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** {@inheritDoc} */
|
||||||
|
@Override
|
||||||
|
public void writeTo(XmlObject obj, Class<?> cls, Type genericType, Annotation[] annotations,
|
||||||
|
MediaType m, MultivaluedMap<String, Object> headers, OutputStream os) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
// Set up the JSON StAX implementation
|
||||||
|
Map<String, String> nstojns = new HashMap<String, String>();
|
||||||
|
Configuration conf = new Configuration(nstojns);
|
||||||
|
conf.setIgnoreNamespaces(true);
|
||||||
|
XMLOutputFactory factory = new MappedXMLOutputFactory(conf);
|
||||||
|
XMLStreamWriter xsw = factory.createXMLStreamWriter(os);
|
||||||
|
xsw.writeStartDocument();
|
||||||
|
if (obj instanceof XmlObject) {
|
||||||
|
|
||||||
|
XmlObject xObj = obj;
|
||||||
|
XMLBeanStreamSerializer ser = new XMLBeanStreamSerializer();
|
||||||
|
ser.serialize(xObj, xsw);
|
||||||
|
}
|
||||||
|
|
||||||
|
xsw.flush();
|
||||||
|
xsw.close();
|
||||||
|
|
||||||
|
} catch (XMLStreamException e) {
|
||||||
|
throw new WebApplicationException(HttpURLConnection.HTTP_INTERNAL_ERROR);
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
throw new WebApplicationException(HttpURLConnection.HTTP_INTERNAL_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,104 @@
|
||||||
|
/***********************************************************************
|
||||||
|
* This file is part of iDempiere ERP Open Source *
|
||||||
|
* http://www.idempiere.org *
|
||||||
|
* *
|
||||||
|
* Copyright (C) Contributors *
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or *
|
||||||
|
* modify it under the terms of the GNU General Public License *
|
||||||
|
* as published by the Free Software Foundation; either version 2 *
|
||||||
|
* of the License, or (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with this program; if not, write to the Free Software *
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, *
|
||||||
|
* MA 02110-1301, USA. *
|
||||||
|
* *
|
||||||
|
* Contributors: *
|
||||||
|
* - hengsin *
|
||||||
|
**********************************************************************/
|
||||||
|
package org.idempiere.jettison.mapped;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.xml.namespace.QName;
|
||||||
|
|
||||||
|
import org.codehaus.jettison.Node;
|
||||||
|
import org.codehaus.jettison.mapped.Configuration;
|
||||||
|
import org.codehaus.jettison.mapped.MappedNamespaceConvention;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author hengsin
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class CustomMappedNamespaceConvention extends MappedNamespaceConvention {
|
||||||
|
|
||||||
|
private Map<String, String> namespacePrefix;
|
||||||
|
private Map<String, String> namespacePrefixReversed;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param config
|
||||||
|
*/
|
||||||
|
public CustomMappedNamespaceConvention(Configuration config) {
|
||||||
|
super(config);
|
||||||
|
namespacePrefix = new HashMap<String, String>();
|
||||||
|
namespacePrefixReversed = new HashMap<String, String>();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param prefix namespace prefix
|
||||||
|
* @param uri namespace uri
|
||||||
|
*/
|
||||||
|
public void addNamespacePrefix(String prefix, String uri) {
|
||||||
|
namespacePrefix.put(uri, prefix);
|
||||||
|
namespacePrefixReversed.put(prefix, uri);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.codehaus.jettison.mapped.MappedNamespaceConvention#createQName(java.lang.String, org.codehaus.jettison.Node)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public QName createQName(String rootName, Node node) {
|
||||||
|
int dot = rootName.lastIndexOf( '.' );
|
||||||
|
QName qname = null;
|
||||||
|
String local = rootName;
|
||||||
|
|
||||||
|
if ( dot == -1 ) {
|
||||||
|
dot = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
local = local.substring( dot + 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
String jns = rootName.substring( 0, dot );
|
||||||
|
String xns = (String) getNamespaceURI( jns );
|
||||||
|
|
||||||
|
if ( xns == null ) {
|
||||||
|
qname = new QName( rootName );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
String prefix = namespacePrefix.get(xns);
|
||||||
|
if (prefix != null && prefix.trim().length() > 0)
|
||||||
|
{
|
||||||
|
qname = new QName( xns, local, prefix );
|
||||||
|
if (node.getObject() != null && namespacePrefixReversed.isEmpty())
|
||||||
|
node.setNamespace(prefix, xns);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
qname = new QName( xns, local );
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!namespacePrefixReversed.isEmpty()) {
|
||||||
|
node.setNamespaces(namespacePrefixReversed);
|
||||||
|
}
|
||||||
|
return qname;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,76 @@
|
||||||
|
/***********************************************************************
|
||||||
|
* This file is part of iDempiere ERP Open Source *
|
||||||
|
* http://www.idempiere.org *
|
||||||
|
* *
|
||||||
|
* Copyright (C) Contributors *
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or *
|
||||||
|
* modify it under the terms of the GNU General Public License *
|
||||||
|
* as published by the Free Software Foundation; either version 2 *
|
||||||
|
* of the License, or (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with this program; if not, write to the Free Software *
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, *
|
||||||
|
* MA 02110-1301, USA. *
|
||||||
|
* *
|
||||||
|
* Contributors: *
|
||||||
|
* - hengsin *
|
||||||
|
**********************************************************************/
|
||||||
|
package org.idempiere.jettison.mapped;
|
||||||
|
|
||||||
|
import javax.xml.stream.XMLStreamException;
|
||||||
|
import javax.xml.stream.XMLStreamReader;
|
||||||
|
|
||||||
|
import org.codehaus.jettison.AbstractXMLInputFactory;
|
||||||
|
import org.codehaus.jettison.json.JSONException;
|
||||||
|
import org.codehaus.jettison.json.JSONObject;
|
||||||
|
import org.codehaus.jettison.json.JSONTokener;
|
||||||
|
import org.codehaus.jettison.mapped.MappedNamespaceConvention;
|
||||||
|
import org.codehaus.jettison.mapped.MappedXMLStreamReader;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author hengsin
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class MappedXMLInputFactory extends AbstractXMLInputFactory {
|
||||||
|
|
||||||
|
|
||||||
|
private MappedNamespaceConvention convention;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param convention
|
||||||
|
*/
|
||||||
|
public MappedXMLInputFactory(MappedNamespaceConvention convention) {
|
||||||
|
this.convention = convention;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tokener
|
||||||
|
* @return {@link XMLStreamReader}
|
||||||
|
*/
|
||||||
|
public XMLStreamReader createXMLStreamReader(JSONTokener tokener) throws XMLStreamException {
|
||||||
|
try {
|
||||||
|
JSONObject root = createJSONObject(tokener);
|
||||||
|
return new MappedXMLStreamReader(root, convention);
|
||||||
|
} catch (JSONException e) {
|
||||||
|
throw new XMLStreamException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param tokener
|
||||||
|
* @return {@link JSONObject}
|
||||||
|
* @throws JSONException
|
||||||
|
*/
|
||||||
|
protected JSONObject createJSONObject(JSONTokener tokener) throws JSONException {
|
||||||
|
return new JSONObject(tokener);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<con:soapui-project activeEnvironment="Default" name="iDempiereWebServices" resourceRoot="" soapui-version="4.5.1" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:interface xsi:type="con:WsdlInterface" wsaVersion="NONE" name="ModelADServiceSoapBinding" type="wsdl" bindingName="{http://idempiere.org/ADInterface/1_0}ModelADServiceSoapBinding" soapVersion="1_1" anonymous="optional" definition="https://localhost:8443/ADInterface/services/ModelADService?wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart="https://localhost:8443/ADInterface/services/ModelADService?wsdl"><con:part><con:url>https://localhost:8443/ADInterface/services/ModelADService?wsdl</con:url><con:content><![CDATA[<wsdl:definitions name="ModelADService" targetNamespace="http://idempiere.org/ADInterface/1_0" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://idempiere.org/ADInterface/1_0" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
<con:soapui-project activeEnvironment="Default" name="iDempiereWebServices" resourceRoot="" soapui-version="5.6.0" id="49a1fda0-5e5d-4576-8086-28f1b9a470c7" abortOnError="false" runType="SEQUENTIAL" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:interface xsi:type="con:WsdlInterface" wsaVersion="NONE" name="ModelADServiceSoapBinding" type="wsdl" bindingName="{http://idempiere.org/ADInterface/1_0}ModelADServiceSoapBinding" soapVersion="1_1" anonymous="optional" definition="https://localhost:8443/ADInterface/services/ModelADService?wsdl" id="b2ae24dd-fc1b-4c47-a2af-7f4de5db0080" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart="https://localhost:8443/ADInterface/services/ModelADService?wsdl"><con:part><con:url>https://localhost:8443/ADInterface/services/ModelADService?wsdl</con:url><con:content><![CDATA[<wsdl:definitions name="ModelADService" targetNamespace="http://idempiere.org/ADInterface/1_0" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://idempiere.org/ADInterface/1_0" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
<wsdl:types>
|
<wsdl:types>
|
||||||
<xsd:schema elementFormDefault="qualified" targetNamespace="http://idempiere.org/ADInterface/1_0">
|
<xsd:schema elementFormDefault="qualified" targetNamespace="http://idempiere.org/ADInterface/1_0">
|
||||||
<xsd:element name="WindowTabData" type="tns:WindowTabData"/>
|
<xsd:element name="WindowTabData" type="tns:WindowTabData"/>
|
||||||
|
@ -461,7 +461,7 @@
|
||||||
<soap:address location="https://localhost:8443/ADInterface/services/ModelADService"/>
|
<soap:address location="https://localhost:8443/ADInterface/services/ModelADService"/>
|
||||||
</wsdl:port>
|
</wsdl:port>
|
||||||
</wsdl:service>
|
</wsdl:service>
|
||||||
</wsdl:definitions>]]></con:content><con:type>http://schemas.xmlsoap.org/wsdl/</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint></con:endpoints><con:operation isOneWay="false" action="" name="createData" bindingOperationName="createData" type="Request-Response" outputName="createDataResponse" inputName="createData" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Sample Create BP GlobalQSS (GW Working)"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
</wsdl:definitions>]]></con:content><con:type>http://schemas.xmlsoap.org/wsdl/</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint></con:endpoints><con:operation isOneWay="false" action="" name="createData" bindingOperationName="createData" type="Request-Response" outputName="createDataResponse" inputName="createData" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="cb9ff5b4-ebb3-471d-bb0c-63d649dbe312"><con:settings/><con:call name="Sample Create BP GlobalQSS (GW Working)" id="d84f67a0-dfe4-456c-8b84-b74ff602d8c4"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
||||||
<soapenv:Header/>
|
<soapenv:Header/>
|
||||||
<soapenv:Body>
|
<soapenv:Body>
|
||||||
<_0:createData>
|
<_0:createData>
|
||||||
|
@ -511,7 +511,7 @@
|
||||||
</_0:ModelCRUDRequest>
|
</_0:ModelCRUDRequest>
|
||||||
</_0:createData>
|
</_0:createData>
|
||||||
</soapenv:Body>
|
</soapenv:Body>
|
||||||
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/createData"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="createUpdateData" bindingOperationName="createUpdateData" type="Request-Response" outputName="createUpdateDataResponse" inputName="createUpdateData" receivesAttachments="false" sendsAttachments="false"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="deleteData" bindingOperationName="deleteData" type="Request-Response" outputName="deleteDataResponse" inputName="deleteData" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Sample Delete BP TreeFarm (must fail)"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/createData"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="createUpdateData" bindingOperationName="createUpdateData" type="Request-Response" outputName="createUpdateDataResponse" inputName="createUpdateData" receivesAttachments="false" sendsAttachments="false" id="7216159e-fd90-4283-8f09-2775a570ac71"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="deleteData" bindingOperationName="deleteData" type="Request-Response" outputName="deleteDataResponse" inputName="deleteData" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="0e8a6dc6-0909-4325-8ead-f45ead7b43ed"><con:settings/><con:call name="Sample Delete BP TreeFarm (must fail)" id="d54fe8fd-5d58-4552-b2b6-553f95e41975"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
||||||
<soapenv:Header/>
|
<soapenv:Header/>
|
||||||
<soapenv:Body>
|
<soapenv:Body>
|
||||||
<_0:deleteData>
|
<_0:deleteData>
|
||||||
|
@ -535,7 +535,7 @@
|
||||||
</_0:ModelCRUDRequest>
|
</_0:ModelCRUDRequest>
|
||||||
</_0:deleteData>
|
</_0:deleteData>
|
||||||
</soapenv:Body>
|
</soapenv:Body>
|
||||||
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/deleteData"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="getList" bindingOperationName="getList" type="Request-Response" outputName="getListResponse" inputName="getList" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Sample Get List Sales Region"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/deleteData"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="getList" bindingOperationName="getList" type="Request-Response" outputName="getListResponse" inputName="getList" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="cb3bd178-857e-4d45-81df-c8967ad69be3"><con:settings/><con:call name="Sample Get List Sales Region" id="ec426c4d-73c7-494b-92d0-c841a411deb0"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
||||||
<soapenv:Header/>
|
<soapenv:Header/>
|
||||||
<soapenv:Body>
|
<soapenv:Body>
|
||||||
<_0:getList>
|
<_0:getList>
|
||||||
|
@ -558,7 +558,7 @@
|
||||||
</_0:ModelGetListRequest>
|
</_0:ModelGetListRequest>
|
||||||
</_0:getList>
|
</_0:getList>
|
||||||
</soapenv:Body>
|
</soapenv:Body>
|
||||||
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/getList"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="queryData" bindingOperationName="queryData" type="Request-Response" outputName="queryDataResponse" inputName="queryData" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Sample get BP Standard > S"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/getList"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="queryData" bindingOperationName="queryData" type="Request-Response" outputName="queryDataResponse" inputName="queryData" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="70e69a9a-fb63-4e31-b22b-6fbe813e3da5"><con:settings/><con:call name="Sample get BP Standard > S" id="35b4b7e5-0a97-4eea-a975-3bc86cee8bd7"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
||||||
<soapenv:Header/>
|
<soapenv:Header/>
|
||||||
<soapenv:Body>
|
<soapenv:Body>
|
||||||
<_0:queryData>
|
<_0:queryData>
|
||||||
|
@ -587,7 +587,7 @@
|
||||||
</_0:ModelCRUDRequest>
|
</_0:ModelCRUDRequest>
|
||||||
</_0:queryData>
|
</_0:queryData>
|
||||||
</soapenv:Body>
|
</soapenv:Body>
|
||||||
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/queryData"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="readData" bindingOperationName="readData" type="Request-Response" outputName="readDataResponse" inputName="readData" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Sample Read TreeFarm"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
</soapenv:Envelope>]]></con:request><con:credentials><con:selectedAuthProfile>Basic</con:selectedAuthProfile><con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/queryData"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="readData" bindingOperationName="readData" type="Request-Response" outputName="readDataResponse" inputName="readData" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="2b8ce310-7832-46a4-a91c-a895684efc3c"><con:settings/><con:call name="Sample Read TreeFarm" id="85198a62-739c-4d74-9ede-76c5da479893"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
||||||
<soapenv:Header/>
|
<soapenv:Header/>
|
||||||
<soapenv:Body>
|
<soapenv:Body>
|
||||||
<_0:readData>
|
<_0:readData>
|
||||||
|
@ -611,7 +611,7 @@
|
||||||
</_0:ModelCRUDRequest>
|
</_0:ModelCRUDRequest>
|
||||||
</_0:readData>
|
</_0:readData>
|
||||||
</soapenv:Body>
|
</soapenv:Body>
|
||||||
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/readData"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="runProcess" bindingOperationName="runProcess" type="Request-Response" outputName="runProcessResponse" inputName="runProcess" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Run Storage Detail"><con:description>Example on how to run report Storage Detail with HQ Warehouse and Patio Chair as parameters You need to define web service security for: Web Service Type: RunStorageDetail Web Service Parameters: AD_Process_ID Constant 236 AD_Menu_ID Constant 0 AD_Record_ID Constant 0 And allow execution to the WebService role on the report. </con:description><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
</soapenv:Envelope>]]></con:request><con:credentials><con:selectedAuthProfile>Basic</con:selectedAuthProfile><con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/readData"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="runProcess" bindingOperationName="runProcess" type="Request-Response" outputName="runProcessResponse" inputName="runProcess" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="f0fd97e6-f0bc-48b5-8075-406a47a9c355"><con:settings/><con:call name="Run Storage Detail" id="ac3486e4-4f0c-4365-8efb-219f2be8cc8a"><con:description>Example on how to run report Storage Detail with HQ Warehouse and Patio Chair as parameters You need to define web service security for: Web Service Type: RunStorageDetail Web Service Parameters: AD_Process_ID Constant 236 AD_Menu_ID Constant 0 AD_Record_ID Constant 0 And allow execution to the WebService role on the report. </con:description><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
||||||
<soapenv:Header/>
|
<soapenv:Header/>
|
||||||
<soapenv:Body>
|
<soapenv:Body>
|
||||||
<_0:runProcess>
|
<_0:runProcess>
|
||||||
|
@ -637,7 +637,7 @@
|
||||||
</_0:ModelRunProcessRequest>
|
</_0:ModelRunProcessRequest>
|
||||||
</_0:runProcess>
|
</_0:runProcess>
|
||||||
</soapenv:Body>
|
</soapenv:Body>
|
||||||
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/runProcess"/><con:wsrmConfig version="1.2"/></con:call><con:call name="Sample Process Invoice (GW Working)"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/runProcess"/><con:wsrmConfig version="1.2"/></con:call><con:call name="Sample Process Invoice (GW Working)" id="a5b8e932-2b38-4d68-8341-f3f1ceb202f2"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
||||||
<soapenv:Header/>
|
<soapenv:Header/>
|
||||||
<soapenv:Body>
|
<soapenv:Body>
|
||||||
<_0:runProcess>
|
<_0:runProcess>
|
||||||
|
@ -658,7 +658,7 @@
|
||||||
</_0:ModelRunProcessRequest>
|
</_0:ModelRunProcessRequest>
|
||||||
</_0:runProcess>
|
</_0:runProcess>
|
||||||
</soapenv:Body>
|
</soapenv:Body>
|
||||||
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/runProcess"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="setDocAction" bindingOperationName="setDocAction" type="Request-Response" outputName="setDocActionResponse" inputName="setDocAction" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Sample Complete Order"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/runProcess"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="setDocAction" bindingOperationName="setDocAction" type="Request-Response" outputName="setDocActionResponse" inputName="setDocAction" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="24d4a009-9b4c-4bd8-a2be-56603635beb7"><con:settings/><con:call name="Sample Complete Order" id="2b6c3f55-ff05-45c7-98a8-aa9683d8dd12"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
||||||
<soapenv:Header/>
|
<soapenv:Header/>
|
||||||
<soapenv:Body>
|
<soapenv:Body>
|
||||||
<_0:setDocAction>
|
<_0:setDocAction>
|
||||||
|
@ -682,7 +682,7 @@
|
||||||
</_0:ModelSetDocActionRequest>
|
</_0:ModelSetDocActionRequest>
|
||||||
</_0:setDocAction>
|
</_0:setDocAction>
|
||||||
</soapenv:Body>
|
</soapenv:Body>
|
||||||
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/setDocAction"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="updateData" bindingOperationName="updateData" type="Request-Response" outputName="updateDataResponse" inputName="updateData" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Sample Update TreeFarm URL"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/setDocAction"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="updateData" bindingOperationName="updateData" type="Request-Response" outputName="updateDataResponse" inputName="updateData" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="f7c41120-6209-4531-8e22-2ad4b0515fb8"><con:settings/><con:call name="Sample Update TreeFarm URL" id="7ed35f5d-ddef-4165-ac1e-fed2bc43fde8"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/ModelADService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
|
||||||
<soapenv:Header/>
|
<soapenv:Header/>
|
||||||
<soapenv:Body>
|
<soapenv:Body>
|
||||||
<_0:updateData>
|
<_0:updateData>
|
||||||
|
@ -711,4 +711,36 @@
|
||||||
</_0:ModelCRUDRequest>
|
</_0:ModelCRUDRequest>
|
||||||
</_0:updateData>
|
</_0:updateData>
|
||||||
</soapenv:Body>
|
</soapenv:Body>
|
||||||
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/updateData"/><con:wsrmConfig version="1.2"/></con:call></con:operation></con:interface><con:properties/><con:wssContainer/></con:soapui-project>
|
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/getList"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="queryData" bindingOperationName="queryData" type="Request-Response" outputName="queryDataResponse" inputName="queryData" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="c731d5e0-23bc-4fa3-83bf-84b523b7ba2f"><con:settings/><con:call name="Sample get BP Standard < S" id="c151f8d1-157b-4430-9f08-af71358d0417"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config">
|
||||||
|
<con:entry key="Accept" value="application/json"/>
|
||||||
|
<con:entry key="Content-Type" value="application/json"/>
|
||||||
|
</xml-fragment></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>https://localhost:8443/ADInterface/services/rest/model_adservice/query_data</con:endpoint><con:request>{
|
||||||
|
"ModelCRUDRequest": {
|
||||||
|
"ModelCRUD": {
|
||||||
|
"serviceType": "QueryBPartner",
|
||||||
|
"TableName": "C_BPartner",
|
||||||
|
"Filter": "name < 'S'",
|
||||||
|
"Action": "Read",
|
||||||
|
"DataRow": { //optional filter by column values
|
||||||
|
"field": [
|
||||||
|
{
|
||||||
|
"@column": "C_BP_Group_ID",
|
||||||
|
"val": "103"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ADLoginRequest": {
|
||||||
|
"user": "WebService",
|
||||||
|
"pass": "WebService",
|
||||||
|
"lang": "en_US",
|
||||||
|
"ClientID": "11",
|
||||||
|
"RoleID": "50004",
|
||||||
|
"OrgID": "11",
|
||||||
|
"WarehouseID": "103",
|
||||||
|
"stage": "9"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</con:request><con:credentials><con:selectedAuthProfile>Basic</con:selectedAuthProfile><con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://idempiere.org/ADInterface/1_0/ModelADService/queryData"/><con:wsrmConfig version="1.2"/></con:call></con:operation></con:interface><con:properties/><con:wssContainer/><con:oAuth2ProfileContainer/><con:oAuth1ProfileContainer/><con:sensitiveInformation/></con:soapui-project>
|
Loading…
Reference in New Issue