axis2testbase.java
来自「bpel执行引擎用来执行bpel业务流程」· Java 代码 · 共 158 行
JAVA
158 行
package org.apache.ode.axis2;import junit.framework.TestCase;import org.apache.axis2.AxisFault;import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;import org.apache.axis2.description.AxisService;import org.apache.axis2.description.AxisOperation;import org.apache.axis2.context.ConfigurationContextFactory;import org.apache.axis2.engine.AxisServer;import org.apache.axis2.engine.MessageReceiver;import org.apache.ode.tools.sendsoap.cline.HttpSoapSender;import org.apache.ode.axis2.util.Axis2UriResolver;import org.apache.ode.axis2.util.Axis2WSDLLocator;import org.apache.ode.axis2.hooks.ODEAxisService;import javax.servlet.ServletException;import javax.wsdl.WSDLException;import javax.xml.namespace.QName;import java.io.*;import java.net.URL;import java.net.URI;import java.net.URISyntaxException;import java.util.Iterator;import java.util.Collection;/** * @author Matthieu Riou <mriou@apache.org> */public abstract class Axis2TestBase extends TestCase { protected ODEAxis2Server server; public void startServer() throws Exception { String webappPath = getClass().getClassLoader().getResource("webapp").getFile(); server = new ODEAxis2Server(webappPath); server.start(); } public void stopServer() throws AxisFault { server.stop(); } protected void setUp() throws Exception { super.setUp(); startServer(); } protected void tearDown() throws Exception { stopServer(); super.tearDown(); } protected class ODEAxis2Server extends AxisServer { ODEServer _ode = new ODEServer(); String webappPath; protected ODEAxis2Server (String webappPath) throws Exception { super(false); this.webappPath = webappPath; String confLocation = webappPath + "/WEB-INF/conf/axis2.xml"; String repoLocation = webappPath + "/WEB-INF/processes"; configContext = ConfigurationContextFactory .createConfigurationContextFromFileSystem(repoLocation, confLocation); } protected void start() throws AxisFault { super.start(); _ode = new ODEServer(); try { _ode.init(webappPath+"/WEB-INF", configContext.getAxisConfiguration()); } catch (ServletException e) { e.printStackTrace(); } } public void stop() throws AxisFault { _ode.shutDown(); super.stop(); } public Collection<QName> deployProcess(String bundleName) { return _ode.getProcessStore().deploy(new File(getBundleDir(bundleName))); } public void undeployProcess(String bundleName) { _ode.getProcessStore().undeploy(new File(getBundleDir(bundleName))); } public boolean isDeployed(String bundleName) { return _ode.getProcessStore().getPackages().contains(bundleName); } /** * Creates and deploys an Axis service based on a provided MessageReceiver. The receiver * will be invoked for all invocations of that service. */ protected void deployService(String bundleName, String defFile, QName serviceName, String port, MessageReceiver receiver) throws WSDLException, IOException, URISyntaxException { URI wsdlUri = new File(getBundleDir(bundleName) + "/" + defFile).toURI(); InputStream is = wsdlUri.toURL().openStream(); WSDL11ToAxisServiceBuilder serviceBuilder = new ODEAxisService.WSDL11ToAxisPatchedBuilder(is, serviceName, port); serviceBuilder.setBaseUri(wsdlUri.toString()); serviceBuilder.setCustomResolver(new Axis2UriResolver()); serviceBuilder.setCustomWSLD4JResolver(new Axis2WSDLLocator(wsdlUri)); serviceBuilder.setServerSide(true); AxisService axisService = serviceBuilder.populateService(); axisService.setName(serviceName.getLocalPart()); axisService.setWsdlFound(true); axisService.setCustomWsdl(true); axisService.setClassLoader(getConfigurationContext().getAxisConfiguration().getServiceClassLoader()); Iterator operations = axisService.getOperations(); while (operations.hasNext()) { AxisOperation operation = (AxisOperation) operations.next(); if (operation.getMessageReceiver() == null) { operation.setMessageReceiver(receiver); } } getConfigurationContext().getAxisConfiguration().addService(axisService); } public String sendRequestFile(String endpoint, String bundleName, String filename) { try { return HttpSoapSender.doSend(new URL(endpoint), new FileInputStream(getBundleDir(bundleName)+"/" + filename), null, 0, null, null, null); } catch (IOException e) { throw new RuntimeException(e); } } protected String getBundleDir(String bundleName) { return getClass().getClassLoader().getResource(bundleName).getFile(); } /** * Convenient methods to generate a WSDL for an Axis2 service. Often nice, but also often * generates crappy WSDL that aren't even valid (especially when faults are involved) so * use with care. * @param serviceName * @param fileName * @throws AxisFault */ protected void generateWSDL(String serviceName, String fileName) throws AxisFault { FileOutputStream fos = null; try { fos = new FileOutputStream(fileName); } catch (FileNotFoundException e) { e.printStackTrace(); } configContext.getAxisConfiguration().getService(serviceName).printWSDL(fos); } public ODEServer getODEServer() { return _ode; } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?