?? xfireexportertest.java
字號:
package org.codehaus.xfire.spring.remoting;/** * @author Arjen Poutsma */import java.io.ByteArrayInputStream;import java.io.IOException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.wsdl.Binding;import javax.wsdl.Definition;import javax.wsdl.Service;import javax.wsdl.extensions.soap.SOAPBinding;import javax.wsdl.factory.WSDLFactory;import javax.wsdl.xml.WSDLReader;import javax.xml.namespace.QName;import org.codehaus.xfire.aegis.AbstractXFireAegisTest;import org.codehaus.xfire.service.ServiceFactory;import org.codehaus.xfire.service.binding.ObjectServiceFactory;import org.codehaus.xfire.soap.SoapConstants;import org.codehaus.xfire.spring.remoting.XFireExporter;import org.codehaus.xfire.test.Echo;import org.codehaus.xfire.test.EchoImpl;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.core.io.ClassPathResource;import org.springframework.core.io.Resource;import org.springframework.mock.web.MockHttpServletRequest;import org.springframework.mock.web.MockHttpServletResponse;import org.springframework.util.FileCopyUtils;import org.springframework.web.servlet.HandlerExecutionChain;import org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping;import org.xml.sax.InputSource;public class XFireExporterTest extends AbstractXFireAegisTest{ private XFireExporter exporter; public void setUp() throws Exception { super.setUp(); Echo echoBean = new EchoImpl(); exporter = new XFireExporter(); exporter.setXfire(getXFire()); exporter.setServiceInterface(Echo.class); exporter.setServiceBean(echoBean); ServiceFactory serviceFactory = new ObjectServiceFactory(getXFire().getTransportManager(), null); exporter.setServiceFactory(serviceFactory); } public void testHandleWsdlRequest() throws Exception { exporter.afterPropertiesSet(); MockHttpServletRequest request = new MockHttpServletRequest("GET", "Echo") { public String getQueryString() { return "wsdl"; } }; MockHttpServletResponse response = new MockHttpServletResponse(); exporter.handleRequest(request, response); InputSource source = new InputSource(new ByteArrayInputStream(response.getContentAsByteArray())); WSDLFactory factory = WSDLFactory.newInstance(); WSDLReader reader = factory.newWSDLReader(); reader.readWSDL("", source); } public void testHandleNonDefaultWsdlRequest() throws Exception { String name = "EchoService"; exporter.setName(name); String namespace = "http://tempuri.org"; exporter.setNamespace(namespace); exporter.afterPropertiesSet(); MockHttpServletRequest request = new MockHttpServletRequest("GET", "Echo") { public String getQueryString() { return "wsdl"; } }; MockHttpServletResponse response = new MockHttpServletResponse(); exporter.handleRequest(request, response); InputSource source = new InputSource(new ByteArrayInputStream(response.getContentAsByteArray())); WSDLFactory factory = WSDLFactory.newInstance(); WSDLReader reader = factory.newWSDLReader(); Definition definition = reader.readWSDL("", source); Service service = definition.getService(new QName(namespace, name)); assertNotNull(service); assertEquals(namespace, service.getQName().getNamespaceURI()); // The service name should be equal to th assertEquals(name, service.getQName().getLocalPart()); Binding binding = definition.getBinding(new QName(namespace, "EchoServiceHttpBinding")); assertNotNull(binding); SOAPBinding soapBinding = (SOAPBinding) binding.getExtensibilityElements().get(0); assertNotNull(soapBinding); assertEquals(SoapConstants.STYLE_DOCUMENT, soapBinding.getStyle()); } public void testHandleSoapRequest() throws Exception { exporter.afterPropertiesSet(); HttpServletRequest request = getRequest(); HttpServletResponse response = new MockHttpServletResponse(); exporter.handleRequest(request, response); } private HttpServletRequest getRequest() throws IOException { Resource resource = new ClassPathResource("/org/codehaus/xfire/spring/echoRequest.xml"); byte[] bytes = FileCopyUtils.copyToByteArray(resource.getInputStream()); MockHttpServletRequest request = new MockHttpServletRequest("POST", "/Echo"); request.setContentType("text/xml"); request.setContent(bytes); return request; } public void testSpringIntegration() throws Exception { ApplicationContext appContext = new ClassPathXmlApplicationContext(new String[]{ "/org/codehaus/xfire/spring/xfire.xml", "/org/codehaus/xfire/spring/remoting/exporterTest.xml"}); assertNotNull(appContext.getBean("xfire.serviceFactory")); assertNotNull(appContext.getBean("echo")); XFireExporter exporter = (XFireExporter) appContext.getBean("/Echo"); assertNotNull(exporter); BeanNameUrlHandlerMapping handlerMapping = new BeanNameUrlHandlerMapping(); handlerMapping.setApplicationContext(appContext); HttpServletRequest request = getRequest(); HandlerExecutionChain chain = handlerMapping.getHandler(request); assertNotNull(chain); assertEquals(exporter, chain.getHandler()); }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -