src/share/jaxws_classes/com/sun/xml/internal/ws/server/EndpointFactory.java

changeset 408
b0610cd08440
parent 384
8f2986ff0235
child 637
9c07ef4934dd
equal deleted inserted replaced
405:cc682329886b 408:b0610cd08440
34 import com.sun.xml.internal.ws.api.databinding.DatabindingConfig; 34 import com.sun.xml.internal.ws.api.databinding.DatabindingConfig;
35 import com.sun.xml.internal.ws.api.databinding.DatabindingFactory; 35 import com.sun.xml.internal.ws.api.databinding.DatabindingFactory;
36 import com.sun.xml.internal.ws.api.databinding.MetadataReader; 36 import com.sun.xml.internal.ws.api.databinding.MetadataReader;
37 import com.sun.xml.internal.ws.api.databinding.WSDLGenInfo; 37 import com.sun.xml.internal.ws.api.databinding.WSDLGenInfo;
38 import com.sun.xml.internal.ws.api.model.SEIModel; 38 import com.sun.xml.internal.ws.api.model.SEIModel;
39 import com.sun.xml.internal.ws.api.model.wsdl.WSDLModel;
39 import com.sun.xml.internal.ws.api.model.wsdl.WSDLPort; 40 import com.sun.xml.internal.ws.api.model.wsdl.WSDLPort;
41 import com.sun.xml.internal.ws.api.model.wsdl.WSDLService;
40 import com.sun.xml.internal.ws.api.policy.PolicyResolver; 42 import com.sun.xml.internal.ws.api.policy.PolicyResolver;
41 import com.sun.xml.internal.ws.api.policy.PolicyResolverFactory; 43 import com.sun.xml.internal.ws.api.policy.PolicyResolverFactory;
42 import com.sun.xml.internal.ws.api.server.AsyncProvider; 44 import com.sun.xml.internal.ws.api.server.AsyncProvider;
43 import com.sun.xml.internal.ws.api.server.Container; 45 import com.sun.xml.internal.ws.api.server.Container;
44 import com.sun.xml.internal.ws.api.server.ContainerResolver; 46 import com.sun.xml.internal.ws.api.server.ContainerResolver;
57 import com.sun.xml.internal.ws.binding.WebServiceFeatureList; 59 import com.sun.xml.internal.ws.binding.WebServiceFeatureList;
58 import com.sun.xml.internal.ws.model.AbstractSEIModelImpl; 60 import com.sun.xml.internal.ws.model.AbstractSEIModelImpl;
59 import com.sun.xml.internal.ws.model.ReflectAnnotationReader; 61 import com.sun.xml.internal.ws.model.ReflectAnnotationReader;
60 import com.sun.xml.internal.ws.model.RuntimeModeler; 62 import com.sun.xml.internal.ws.model.RuntimeModeler;
61 import com.sun.xml.internal.ws.model.SOAPSEIModel; 63 import com.sun.xml.internal.ws.model.SOAPSEIModel;
62 import com.sun.xml.internal.ws.model.wsdl.WSDLModelImpl;
63 import com.sun.xml.internal.ws.model.wsdl.WSDLPortImpl;
64 import com.sun.xml.internal.ws.model.wsdl.WSDLServiceImpl;
65 import com.sun.xml.internal.ws.policy.PolicyMap; 64 import com.sun.xml.internal.ws.policy.PolicyMap;
66 import com.sun.xml.internal.ws.policy.jaxws.PolicyUtil; 65 import com.sun.xml.internal.ws.policy.jaxws.PolicyUtil;
67 import com.sun.xml.internal.ws.resources.ServerMessages; 66 import com.sun.xml.internal.ws.resources.ServerMessages;
68 import com.sun.xml.internal.ws.server.provider.ProviderInvokerTube; 67 import com.sun.xml.internal.ws.server.provider.ProviderInvokerTube;
69 import com.sun.xml.internal.ws.server.sei.SEIInvokerTube; 68 import com.sun.xml.internal.ws.server.sei.SEIInvokerTube;
71 import com.sun.xml.internal.ws.util.HandlerAnnotationProcessor; 70 import com.sun.xml.internal.ws.util.HandlerAnnotationProcessor;
72 import com.sun.xml.internal.ws.util.ServiceConfigurationError; 71 import com.sun.xml.internal.ws.util.ServiceConfigurationError;
73 import com.sun.xml.internal.ws.util.ServiceFinder; 72 import com.sun.xml.internal.ws.util.ServiceFinder;
74 import com.sun.xml.internal.ws.util.xml.XmlUtil; 73 import com.sun.xml.internal.ws.util.xml.XmlUtil;
75 import com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser; 74 import com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser;
75
76 import org.xml.sax.EntityResolver; 76 import org.xml.sax.EntityResolver;
77 import org.xml.sax.InputSource; 77 import org.xml.sax.InputSource;
78 import org.xml.sax.SAXException; 78 import org.xml.sax.SAXException;
79 79
80 import javax.jws.WebService; 80 import javax.jws.WebService;
84 import javax.xml.ws.Provider; 84 import javax.xml.ws.Provider;
85 import javax.xml.ws.WebServiceException; 85 import javax.xml.ws.WebServiceException;
86 import javax.xml.ws.WebServiceFeature; 86 import javax.xml.ws.WebServiceFeature;
87 import javax.xml.ws.WebServiceProvider; 87 import javax.xml.ws.WebServiceProvider;
88 import javax.xml.ws.soap.SOAPBinding; 88 import javax.xml.ws.soap.SOAPBinding;
89
89 import java.io.IOException; 90 import java.io.IOException;
90 import java.net.URL; 91 import java.net.URL;
91 import java.util.ArrayList; 92 import java.util.ArrayList;
92 import java.util.Collection; 93 import java.util.Collection;
93 import java.util.HashMap; 94 import java.util.HashMap;
230 // Finds the primary WSDL and makes sure that metadata doesn't have 231 // Finds the primary WSDL and makes sure that metadata doesn't have
231 // two concrete or abstract WSDLs 232 // two concrete or abstract WSDLs
232 SDDocumentImpl primaryDoc = primaryWsdl != null ? SDDocumentImpl.create(primaryWsdl,serviceName,portTypeName) : findPrimary(docList); 233 SDDocumentImpl primaryDoc = primaryWsdl != null ? SDDocumentImpl.create(primaryWsdl,serviceName,portTypeName) : findPrimary(docList);
233 234
234 EndpointAwareTube terminal; 235 EndpointAwareTube terminal;
235 WSDLPortImpl wsdlPort = null; 236 WSDLPort wsdlPort = null;
236 AbstractSEIModelImpl seiModel = null; 237 AbstractSEIModelImpl seiModel = null;
237 // create WSDL model 238 // create WSDL model
238 if (primaryDoc != null) { 239 if (primaryDoc != null) {
239 wsdlPort = getWSDLPort(primaryDoc, docList, serviceName, portName, container, resolver); 240 wsdlPort = getWSDLPort(primaryDoc, docList, serviceName, portName, container, resolver);
240 } 241 }
707 * @param serviceName service name in wsdl 708 * @param serviceName service name in wsdl
708 * @param portName port name in WSDL 709 * @param portName port name in WSDL
709 * @param container container in which this service is running 710 * @param container container in which this service is running
710 * @return non-null wsdl port object 711 * @return non-null wsdl port object
711 */ 712 */
712 private static @NotNull WSDLPortImpl getWSDLPort(SDDocumentSource primaryWsdl, List<? extends SDDocumentSource> metadata, 713 private static @NotNull WSDLPort getWSDLPort(SDDocumentSource primaryWsdl, List<? extends SDDocumentSource> metadata,
713 @NotNull QName serviceName, @NotNull QName portName, Container container, 714 @NotNull QName serviceName, @NotNull QName portName, Container container,
714 EntityResolver resolver) { 715 EntityResolver resolver) {
715 URL wsdlUrl = primaryWsdl.getSystemId(); 716 URL wsdlUrl = primaryWsdl.getSystemId();
716 try { 717 try {
717 // TODO: delegate to another entity resolver 718 // TODO: delegate to another entity resolver
718 WSDLModelImpl wsdlDoc = RuntimeWSDLParser.parse( 719 WSDLModel wsdlDoc = RuntimeWSDLParser.parse(
719 new Parser(primaryWsdl), new EntityResolverImpl(metadata, resolver), 720 new Parser(primaryWsdl), new EntityResolverImpl(metadata, resolver),
720 false, container, ServiceFinder.find(WSDLParserExtension.class).toArray()); 721 false, container, ServiceFinder.find(WSDLParserExtension.class).toArray());
721 if(wsdlDoc.getServices().size() == 0) { 722 if(wsdlDoc.getServices().size() == 0) {
722 throw new ServerRtException(ServerMessages.localizableRUNTIME_PARSER_WSDL_NOSERVICE_IN_WSDLMODEL(wsdlUrl)); 723 throw new ServerRtException(ServerMessages.localizableRUNTIME_PARSER_WSDL_NOSERVICE_IN_WSDLMODEL(wsdlUrl));
723 } 724 }
724 WSDLServiceImpl wsdlService = wsdlDoc.getService(serviceName); 725 WSDLService wsdlService = wsdlDoc.getService(serviceName);
725 if (wsdlService == null) { 726 if (wsdlService == null) {
726 throw new ServerRtException(ServerMessages.localizableRUNTIME_PARSER_WSDL_INCORRECTSERVICE(serviceName,wsdlUrl)); 727 throw new ServerRtException(ServerMessages.localizableRUNTIME_PARSER_WSDL_INCORRECTSERVICE(serviceName,wsdlUrl));
727 } 728 }
728 WSDLPortImpl wsdlPort = wsdlService.get(portName); 729 WSDLPort wsdlPort = wsdlService.get(portName);
729 if (wsdlPort == null) { 730 if (wsdlPort == null) {
730 throw new ServerRtException(ServerMessages.localizableRUNTIME_PARSER_WSDL_INCORRECTSERVICEPORT(serviceName, portName, wsdlUrl)); 731 throw new ServerRtException(ServerMessages.localizableRUNTIME_PARSER_WSDL_INCORRECTSERVICEPORT(serviceName, portName, wsdlUrl));
731 } 732 }
732 return wsdlPort; 733 return wsdlPort;
733 } catch (IOException e) { 734 } catch (IOException e) {

mercurial