endpointdescriptionimpl.java
来自「开源的axis2框架的源码。用于开发WEBSERVER」· Java 代码 · 共 1,359 行 · 第 1/5 页
JAVA
1,359 行
DescriptionUtils.makeNamespaceFromPackageName(
DescriptionUtils.getJavaPackageName(implOrSEIClass), "http");
}
}
return annotation_TargetNamespace;
}
// ===========================================
// ANNOTATION: WebServiceProvider
// ===========================================
public WebServiceProvider getAnnoWebServiceProvider() {
return webServiceProviderAnnotation;
}
// ===========================================
// ANNOTATION: WebService
// ===========================================
public WebService getAnnoWebService() {
return webServiceAnnotation;
}
public String getAnnoWebServiceEndpointInterface() {
// TODO: Validation: Not allowed on WebServiceProvider
if (webService_EndpointInterface == null) {
if (!isProviderBased() && getAnnoWebService() != null
&& !DescriptionUtils.isEmpty(getAnnoWebService().endpointInterface())) {
webService_EndpointInterface = getAnnoWebService().endpointInterface();
} else {
// This element is not valid on a WebServiceProvider annotation
// REVIEW: Is this a correct thing to return if this is called against a WebServiceProvier
// which does not support this element?
webService_EndpointInterface = "";
}
}
return webService_EndpointInterface;
}
public String getAnnoWebServiceName() {
// TODO: Validation: Not allowed on WebServiceProvider
//TODO: Per JSR109 v1.2 Sec. 5.3.2.1
// If not specified then we can use the default value as specified in JSR 181
// (but only if it is unique within the module)...or If the name is
// not specified in the Service Implementation Bean then fully
// qualified name of the Bean class is used to guarantee uniqueness
// If the above is not unique then fully qualified name of the
// Bean class is used to guarantee uniqueness
if (webService_Name == null) {
if (!isProviderBased()) {
if (getAnnoWebService() != null
&& !DescriptionUtils.isEmpty(getAnnoWebService().name())) {
webService_Name = getAnnoWebService().name();
} else {
if (getServiceDescriptionImpl().isDBCMap()) {
//The name is the simple name of the class or interface
webService_Name =
DescriptionUtils.getSimpleJavaClassName(composite.getClassName());
} else {
// Default per JSR-181 Sec 4.1, pg 15
webService_Name = DescriptionUtils.getSimpleJavaClassName(implOrSEIClass);
}
}
} else {
// This element is not valid on a WebServiceProvider annotation
// REVIEW: Is this a correct thing to return if this is called against a WebServiceProvier
// which does not support this element?
webService_Name = "";
}
}
return webService_Name;
}
// ===========================================
// ANNOTATION: ServiceMode
// ===========================================
public ServiceMode getAnnoServiceMode() {
if (serviceModeAnnotation == null) {
if (getServiceDescriptionImpl().isDBCMap()) {
serviceModeAnnotation = composite.getServiceModeAnnot();
} else {
if (implOrSEIClass != null) {
serviceModeAnnotation =
(ServiceMode)implOrSEIClass.getAnnotation(ServiceMode.class);
}
}
}
return serviceModeAnnotation;
}
public Service.Mode getServiceMode() {
// REVIEW: WSDL/Anno Merge
return getAnnoServiceModeValue();
}
public Service.Mode getAnnoServiceModeValue() {
// This annotation is only valid on Provider-based endpoints.
if (isProviderBased() && serviceModeValue == null) {
if (getAnnoServiceMode() != null) {
serviceModeValue = getAnnoServiceMode().value();
} else {
serviceModeValue = ServiceMode_DEFAULT;
}
}
return serviceModeValue;
}
// ===========================================
// ANNOTATION: BindingType
// ===========================================
public BindingType getAnnoBindingType() {
if (bindingTypeAnnotation == null) {
if (getServiceDescriptionImpl().isDBCMap()) {
bindingTypeAnnotation = composite.getBindingTypeAnnot();
} else {
if (implOrSEIClass != null) {
bindingTypeAnnotation =
(BindingType)implOrSEIClass.getAnnotation(BindingType.class);
}
}
}
return bindingTypeAnnotation;
}
public String getBindingType() {
// REVIEW: Implement WSDL/Anno merge?
return getAnnoBindingTypeValue();
}
public String getAnnoBindingTypeValue() {
if (bindingTypeValue == null) {
if (getAnnoBindingType() != null &&
!DescriptionUtils.isEmpty(getAnnoBindingType().value())) {
bindingTypeValue = getAnnoBindingType().value();
} else {
// No BindingType annotation present or value was empty; use default value
bindingTypeValue = BindingType_DEFAULT;
}
}
return bindingTypeValue;
}
// ===========================================
// ANNOTATION: HandlerChain
// ===========================================
public void setHandlerChain(HandlerChainsType handlerChain) {
handlerChainsType = handlerChain;
}
/**
* Returns a schema derived java class containing the the handler configuration filel
*
* @return HandlerChainsType This is the top-level element for the Handler configuration file
*/
public HandlerChainsType getHandlerChain() {
if (handlerChainsType == null) {
getAnnoHandlerChainAnnotation();
if (handlerChainAnnotation != null) {
String handlerFileName = handlerChainAnnotation.file();
// TODO RAS & NLS
if (log.isDebugEnabled()) {
log.debug("EndpointDescriptionImpl.getHandlerChain: fileName: "
+ handlerFileName
+ " className: "
+ composite.getClassName());
}
String className = getServiceDescriptionImpl().isDBCMap() ?
composite.getClassName() : implOrSEIClass.getName();
ClassLoader classLoader = getServiceDescriptionImpl().isDBCMap() ?
composite.getClassLoader() : this.getClass().getClassLoader();
InputStream is = DescriptionUtils.openHandlerConfigStream(
handlerFileName,
className,
classLoader);
if(is == null) {
log.warn("Unable to load handlers from file: " + handlerFileName);
} else {
handlerChainsType = DescriptionUtils.loadHandlerChains(is);
}
}
}
return handlerChainsType;
}
public HandlerChain getAnnoHandlerChainAnnotation() {
if (this.handlerChainAnnotation == null) {
if (getServiceDescriptionImpl().isDBCMap()) {
/*
* Per JSR-181 The @HandlerChain annotation MAY be present on
* the endpoint interface and service implementation bean. The
* service implementations bean's @HandlerChain is used if
* @HandlerChain is present on both. So, if we do find the
* annotation on this impl, then don't worry about else
* Otherwise, check to see if the SEI might be annotated with
* @HandlerChain
*/
handlerChainAnnotation = composite.getHandlerChainAnnot();
if (handlerChainAnnotation == null) {
// If this is NOT an implicit SEI, then check for the
// annotation on the SEI
if (!DescriptionUtils.isEmpty(getAnnoWebServiceEndpointInterface())) {
DescriptionBuilderComposite seic = getServiceDescriptionImpl().getDBCMap()
.get(composite.getWebServiceAnnot().endpointInterface());
if (seic != null) {
handlerChainAnnotation = seic.getHandlerChainAnnot();
}
// TODO else clause for if to throw exception when seic == null
}
}
} else {
if (implOrSEIClass != null) {
handlerChainAnnotation =
(HandlerChain)implOrSEIClass.getAnnotation(HandlerChain.class);
}
}
}
return handlerChainAnnotation;
}
private Definition getWSDLDefinition() {
return ((ServiceDescriptionWSDL)getServiceDescription()).getWSDLDefinition();
}
public javax.wsdl.Service getWSDLService() {
Definition defn = getWSDLDefinition();
if (defn != null) {
return defn.getService(getServiceQName());
} else {
return null;
}
}
public Port getWSDLPort() {
javax.wsdl.Service service = getWSDLService();
if (service != null) {
return service.getPort(getPortQName().getLocalPart());
} else {
return null;
}
}
public Binding getWSDLBinding() {
Binding wsdlBinding = null;
Port wsdlPort = getWSDLPort();
Definition wsdlDef = getWSDLDefinition();
if (wsdlPort != null && wsdlDef != null) {
wsdlBinding = wsdlPort.getBinding();
}
return wsdlBinding;
}
public String getWSDLBindingType() {
String wsdlBindingType = null;
Binding wsdlBinding = getWSDLBinding();
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?