gpt4 book ai didi

org.codehaus.enunciate.contract.jaxws.WebMethod类的使用及代码示例

转载 作者:知者 更新时间:2024-03-26 11:47:05 28 4
gpt4 key购买 nike

本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebMethod类的一些代码示例,展示了WebMethod类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。WebMethod类的具体详情如下:
包路径:org.codehaus.enunciate.contract.jaxws.WebMethod
类名称:WebMethod

WebMethod介绍

[英]A method invoked on a web service.
[中]在web服务上调用的方法。

代码示例

代码示例来源:origin: org.codehaus.enunciate/enunciate-core

public Collection<WebMessagePart> getParts() {
 ArrayList<WebMessagePart> parts = new ArrayList<WebMessagePart>();
 for (WebParam webParam : this.webMethod.getWebParameters()) {
  if ((webParam.isOutput()) && (!webParam.isHeader())) {
   parts.add(webParam);
  }
 }
 TypeMirror returnType = this.webMethod.getReturnType();
 if (!(returnType instanceof VoidType)) {
  parts.add(this.webMethod.getWebResult());
 }
 return parts;
}

代码示例来源:origin: org.codehaus.enunciate/enunciate-core

protected Iterator<WebFault> getLoop(TemplateModel model) throws TemplateException {
 WebMethod webMethod = this.webMethod;
 if (webMethod == null) {
  throw new MissingParameterException("webMethod");
 }
 return webMethod.getWebFaults().iterator();
}

代码示例来源:origin: org.codehaus.enunciate/enunciate-core

/**
 * The simple name of the method.
 *
 * @return The simple name of the method.
 */
public String getMessageName() {
 return webMethod.getDeclaringEndpointInterface().getSimpleName() + "." + webMethod.getSimpleName();
}

代码示例来源:origin: org.codehaus.enunciate/enunciate-core

/**
 * Determine whether this web method is doc/lit wrapped.
 *
 * @return Whether this web method is doc/lit wrapped.
 */
public boolean isDocLitWrapped() {
 return getSoapBindingStyle() == SOAPBinding.Style.DOCUMENT &&
  getSoapUse() == SOAPBinding.Use.LITERAL &&
  getSoapParameterStyle() == SOAPBinding.ParameterStyle.WRAPPED;
}

代码示例来源:origin: org.codehaus.enunciate/enunciate-core

/**
 * This web parameter defines an implicit schema element if it is DOCUMENT binding style and either BARE or a header.
 *
 * @return Whether this web parameter is an implicit schema element.
 */
public boolean isImplicitSchemaElement() {
 return isHeader() || (method.getSoapBindingStyle() != SOAPBinding.Style.RPC && method.getSoapParameterStyle() == SOAPBinding.ParameterStyle.BARE);
}

代码示例来源:origin: org.codehaus.enunciate/enunciate-full

protected void addExplicitAnnotations(WebMethod webMethod, ClientClassnameForMethod conversion) {
 String classname = conversion.convert(webMethod.getDeclaringEndpointInterface());
 String methodName = webMethod.getSimpleName();
 String methodKey = String.format("%s.%s", classname, methodName);
 sbAnnotation.setStyle(webMethod.getSoapBindingStyle() == SOAPBinding.Style.DOCUMENT ? SOAPBindingAnnotation.STYLE_DOCUMENT : SOAPBindingAnnotation.STYLE_RPC);
 sbAnnotation.setParameterStyle(webMethod.getSoapParameterStyle() == SOAPBinding.ParameterStyle.BARE ? SOAPBindingAnnotation.PARAMETER_STYLE_BARE : SOAPBindingAnnotation.PARAMETER_STYLE_WRAPPED);
 sbAnnotation.setUse(webMethod.getSoapUse() == SOAPBinding.Use.ENCODED ? SOAPBindingAnnotation.USE_ENCODED : SOAPBindingAnnotation.USE_LITERAL);
 this.generatedAnnotations.method2SOAPBinding.put(methodKey, sbAnnotation);
 wmAnnotation.setOperationName(webMethod.getOperationName());
 wmAnnotation.setAction(webMethod.getAction());
 this.generatedAnnotations.method2WebMethod.put(methodKey, wmAnnotation);
 WebResult webResult = webMethod.getWebResult();
 SerializableWebResultAnnotation wrAnnotation = new SerializableWebResultAnnotation();
 wrAnnotation.setHeader(webResult.isHeader());
 if (webMethod.isOneWay()) {
  this.generatedAnnotations.oneWayMethods.add(methodKey);
 for (WebMessage webMessage : webMethod.getMessages()) {
  if (webMessage instanceof RequestWrapper) {
   RequestWrapper requestWrapper = (RequestWrapper) webMessage;
 for (WebParam webParam : webMethod.getWebParameters()) {
  SerializableWebParamAnnotation wpAnnotation = new SerializableWebParamAnnotation();
  wpAnnotation.setHeader(webParam.isHeader());

代码示例来源:origin: org.codehaus.enunciate/enunciate-full

public ValidationResult validateWebMethod(WebMethod webMethod) {
 ValidationResult result = new ValidationResult();
 if (!webMethod.getModifiers().contains(Modifier.PUBLIC)) {
  result.addError(webMethod.getPosition(), "A non-public method cannot be a web method.");
 javax.jws.WebMethod annotation = webMethod.getAnnotation(javax.jws.WebMethod.class);
 if ((annotation != null) && (annotation.exclude())) {
  result.addError(webMethod.getPosition(), "A method marked as excluded cannot be a web method.");
 if (webMethod.getSoapUse() == SOAPBinding.Use.ENCODED) {
  result.addError(webMethod.getPosition(), "Enunciate doesn't support ENCODED-use web methods.");
 boolean oneway = webMethod.isOneWay();
 SOAPBinding.ParameterStyle parameterStyle = webMethod.getSoapParameterStyle();
 SOAPBinding.Style soapBindingStyle = webMethod.getSoapBindingStyle();
 if (oneway && (!(webMethod.getReturnType() instanceof VoidType))) {
  result.addError(webMethod.getPosition(), "A one-way method must have a void return type.");
 if (oneway && webMethod.getThrownTypes() != null && !webMethod.getThrownTypes().isEmpty()) {
  result.addError(webMethod.getPosition(), "A one-way method can't throw any exceptions.");
  result.addError(webMethod.getPosition(), "A BARE web method must have a DOCUMENT binding style.");
 for (WebParam webParam : webMethod.getWebParameters()) {
  if ((webParam.getMode() == javax.jws.WebParam.Mode.INOUT) && (!webParam.isHolder())) {
   result.addError(webParam.getPosition(), "An INOUT parameter must have a type of javax.xml.ws.Holder");
 for (WebMessage webMessage : webMethod.getMessages()) {
  if (oneway && webMessage.isOutput()) {

代码示例来源:origin: org.codehaus.enunciate/enunciate-full

this.annotation = getAnnotation(javax.jws.WebMethod.class);
this.oneWay = getAnnotation(Oneway.class) != null;
this.endpointInterface = endpointInterface;
TypeMirror returnType = getReturnType();
MapType mapType = MapTypeUtil.findMapType(returnType);
if (mapType != null) {
Collection<ParameterDeclaration> parameters = getParameters();
Collection<WebParam> webParameters = new ArrayList<WebParam>(parameters.size());
for (ParameterDeclaration parameter : parameters) {
for (ReferenceType referenceType : getThrownTypes()) {
 if (!(referenceType instanceof DeclaredType)) {
  throw new ValidationException(getPosition(), "Thrown type must be a declared type.");
  throw new ValidationException(getPosition(), "Unknown declaration for " + referenceType);
SOAPBinding.Style bindingStyle = getSoapBindingStyle();
 SOAPBinding.ParameterStyle parameterStyle = getSoapParameterStyle();
 if (parameterStyle == SOAPBinding.ParameterStyle.WRAPPED) {
  messages.add(new RequestWrapper(this));
  if (!isOneWay()) {
   messages.add(new ResponseWrapper(this));
  if ((!isOneWay()) && (!(getReturnType() instanceof VoidType))) {
   messages.add(webResult);

代码示例来源:origin: org.codehaus.enunciate/enunciate-full

for (WebMessage webMessage : webMethod.getMessages()) {
 if (webMessage instanceof RequestWrapper) {
  javax.xml.ws.RequestWrapper annotation = webMethod.getAnnotation(javax.xml.ws.RequestWrapper.class);
  if ((annotation != null) && (annotation.targetNamespace() != null) && (!"".equals(annotation.targetNamespace()))) {
   if (!webMethod.getDeclaringEndpointInterface().getTargetNamespace().equals(annotation.targetNamespace())) {
    result.addError(webMethod.getPosition(), "Enunciate doesn't allow declaring a target namespace for a request wrapper that is different " +
     "from the target namespace of the endpoint interface.  If you really must, declare the parameter style BARE and use an xml root element from " +
     "another namespace for the parameter.");
  javax.xml.ws.ResponseWrapper annotation = webMethod.getAnnotation(javax.xml.ws.ResponseWrapper.class);
  if ((annotation != null) && (annotation.targetNamespace() != null) && (!"".equals(annotation.targetNamespace()))) {
   if (!webMethod.getDeclaringEndpointInterface().getTargetNamespace().equals(annotation.targetNamespace())) {
    result.addError(webMethod.getPosition(), "Enunciate doesn't allow declaring a target namespace for a response wrapper that is " +
     "different from the target namespace of the endpoint interface.  If you really must, declare the parameter style BARE and use an xml root " +
     "element from another namespace for the return value.");
   WebMethod otherMethod = implicitElementNames.put(el.getElementName(), webMethod);
   if (otherMethod != null) {
    result.addError(webMethod.getPosition(), "Web method defines a message part named '" + el.getElementName() +
     "' that is identical to the name of a web message part defined in " + otherMethod.getPosition() + ".  Please use annotations to disambiguate.");
for (WebParam webParam : webMethod.getWebParameters()) {
 javax.jws.WebParam annotation = webParam.getAnnotation(javax.jws.WebParam.class);
 if ((annotation != null) && (!"".equals(annotation.targetNamespace()))) {
  if (!annotation.targetNamespace().equals(webParam.getWebMethod().getDeclaringEndpointInterface().getTargetNamespace())) {
   result.addError(webParam.getPosition(), "Enunciate doesn't allow declaring a target namespace for a web parameter that is different from the " +

代码示例来源:origin: org.codehaus.enunciate/enunciate-csharp

if (webMethod.getSoapBindingStyle() != SOAPBinding.Style.DOCUMENT || webMethod.getSoapUse() != SOAPBinding.Use.LITERAL) {
 throw new TemplateModelException("No request document qname available for a " + webMethod.getSoapBindingStyle() + "/" + webMethod.getSoapUse() + " web method.");
if (webMethod.getRequestWrapper() != null) {
 return new QName(webMethod.getRequestWrapper().getElementNamespace(), webMethod.getRequestWrapper().getElementName());
else if (webMethod.getSoapParameterStyle() == SOAPBinding.ParameterStyle.BARE) {
 Collection<WebParam> params = webMethod.getWebParameters();
 for (WebParam param : params) {
  if (!param.isHeader()) {
   return new QName(webMethod.getDeclaringEndpointInterface().getTargetNamespace(), param.getElementName());

代码示例来源:origin: org.codehaus.enunciate/enunciate-core

/**
 * Adds any type definitions referenced by a web method.
 *
 * @param webMethod The web method.
 */
protected void addReferencedTypeDefinitions(WebMethod webMethod) {
 REFERENCE_STACK.get().addFirst("\"see also\" annotation");
 addSeeAlsoTypeDefinitions(webMethod);
 REFERENCE_STACK.get().removeFirst();
 WebResult result = webMethod.getWebResult();
 REFERENCE_STACK.get().addFirst("return type");
 addReferencedTypeDefinitions(result.isAdapted() ? result.getAdapterType() : result.getType());
 REFERENCE_STACK.get().removeFirst();
 for (WebParam webParam : webMethod.getWebParameters()) {
  REFERENCE_STACK.get().addFirst("parameter " + webParam.getSimpleName());
  addReferencedTypeDefinitions(webParam.isAdapted() ? webParam.getAdapterType() : webParam.getType());
  REFERENCE_STACK.get().removeFirst();
 }
 for (WebFault webFault : webMethod.getWebFaults()) {
  REFERENCE_STACK.get().addFirst("thrown fault " + webFault.getSimpleName());
  addReferencedTypeDefinitions(webFault);
  REFERENCE_STACK.get().removeFirst();
 }
}

代码示例来源:origin: org.codehaus.enunciate/enunciate-csharp

/**
 * Gets the client-side package for the type, type declaration, package, or their string values.
 *
 * @param list The arguments.
 * @return The string value of the client-side package.
 */
public Object exec(List list) throws TemplateModelException {
 if (list.size() < 1) {
  throw new TemplateModelException("The responseDocumentQName method method must have a web method as a parameter.");
 }
 TemplateModel from = (TemplateModel) list.get(0);
 Object unwrapped = BeansWrapper.getDefaultInstance().unwrap(from);
 if (!(unwrapped instanceof WebMethod)) {
  throw new TemplateModelException("A web method must be provided.");
 }
 WebMethod webMethod = (WebMethod) unwrapped;
 if (webMethod.getSoapBindingStyle() != SOAPBinding.Style.DOCUMENT || webMethod.getSoapUse() != SOAPBinding.Use.LITERAL) {
  throw new TemplateModelException("No response document qname available for a " + webMethod.getSoapBindingStyle() + "/" + webMethod.getSoapUse() + " web method.");
 }
 if (webMethod.getResponseWrapper() != null) {
  return new QName(webMethod.getResponseWrapper().getElementNamespace(), webMethod.getResponseWrapper().getElementName());
 }
 else if (webMethod.getSoapParameterStyle() == SOAPBinding.ParameterStyle.BARE) {
  WebResult wr = webMethod.getWebResult();
  if (!wr.isHeader()) {
   return new QName(wr.getTargetNamespace(), wr.getElementName());
  }
 }
 return null;
}

代码示例来源:origin: org.codehaus.enunciate/enunciate-full

TreeSet<WebFault> unvisitedFaults = new TreeSet<WebFault>(new ClassDeclarationComparator());
for (WebMethod webMethod : ei.getWebMethods()) {
 for (WebMessage webMessage : webMethod.getMessages()) {
  if (webMessage instanceof RequestWrapper) {
   result.aggregate(validateRequestWrapper((RequestWrapper) webMessage, jaxwsBeans));
 for (WebParam webParam : webMethod.getWebParameters()) {
  if (webParam.getType() instanceof MapType) {
   result.addError(webParam.getPosition(), "For some reason, JAXB doesn't support maps in return values or in parameters.  Still need to investigate further the reason....");
 if (webMethod.getWebResult().getType() instanceof MapType) {
  result.addError(webMethod.getPosition(), "For some reason, JAXB doesn't support maps in return values or in parameters.  Still need to investigate further the reason....");

代码示例来源:origin: org.codehaus.enunciate/enunciate-full

if (!isSupported(webMethod.getWebResult())) {
 result.addError(webMethod.getPosition(), "GWT doesn't support '" + webMethod.getWebResult() + "' as a return type.");
for (WebParam webParam : webMethod.getWebParameters()) {
 if (!isSupported(webParam.getType())) {
  result.addError(webParam.getPosition(), "GWT doesn't support '" + webParam.getType() + "' as a parameter type.");
allFaults.addAll(webMethod.getWebFaults());

代码示例来源:origin: org.codehaus.enunciate/enunciate-jaxws

TreeSet<WebFault> unvisitedFaults = new TreeSet<WebFault>(new TypeDeclarationComparator());
for (WebMethod webMethod : ei.getWebMethods()) {
 for (WebMessage webMessage : webMethod.getMessages()) {
  if (webMessage instanceof RequestWrapper) {
   result.aggregate(validateRequestWrapper((RequestWrapper) webMessage, jaxwsBeans));
 for (WebParam webParam : webMethod.getWebParameters()) {
  if (webParam.getType() instanceof MapType) {
   result.addError(webParam, "There's a bug in JAXB ruining support for maps in return values or in parameters.  For more information, see " +
 if (webMethod.getWebResult().getType() instanceof MapType) {
  result.addError(webMethod, "There's a bug in JAXB ruining support for maps in return values or in parameters.  For more information, see " +
   "https://jaxb.dev.java.net/issues/show_bug.cgi?id=268 and http://forums.java.net/jive/thread.jspa?messageID=361990");

代码示例来源:origin: org.codehaus.enunciate/enunciate-full

@Override
public ValidationResult validateEndpointInterface(EndpointInterface ei) {
 ValidationResult result = super.validateEndpointInterface(ei);
 if (!isAMFTransient(ei)) {
  for (WebMethod webMethod : ei.getWebMethods()) {
   if (!isAMFTransient(webMethod)) {
    if (!isSupported(webMethod.getWebResult())) {
     result.addError(webMethod.getPosition(), "AMF doesn't support '" + webMethod.getWebResult() + "' as a return type.");
    }
    for (WebParam webParam : webMethod.getWebParameters()) {
     if (!isSupported(webParam.getType())) {
      result.addError(webParam.getPosition(), "AMF doesn't support '" + webParam.getType() + "' as a parameter type.");
     }
    }
   }
  }
  if (ei.getEndpointImplementations().size() > 1) {
   ArrayList<String> impls = new ArrayList<String>();
   for (EndpointImplementation impl : ei.getEndpointImplementations()) {
    impls.add(impl.getQualifiedName());
   }
   result.addError(ei.getPosition(), "Sorry, AMF doesn't support two endpoint implementations for interface '" + ei.getQualifiedName() +
    "'.  Found " + ei.getEndpointImplementations().size() + " implementations (" + impls.toString() + ").");
  }
 }
 
 return result;
}

代码示例来源:origin: org.codehaus.enunciate/enunciate-csharp

Map<String, Declaration> paramsByName = new HashMap<String, Declaration>();
for (WebMethod webMethod : ei.getWebMethods()) {
 for (WebParam webParam : webMethod.getWebParameters()) {
 if (webMethod.getWebResult().isHeader()) {
  Declaration conflict = paramsByName.put(webMethod.getWebResult().getElementName(), webMethod);
  if (conflict != null) {
   result.addError(webMethod, "C# requires that all header parameters defined in the same endpoint interface have unique names. " +
 if (webMethod.getWebResult().getType() instanceof MapType) {
  result.addError(webMethod, "C# can't handle types that are maps.");
 if (capitalize(webMethod.getClientSimpleName()).equals(ei.getClientSimpleName())) {
  result.addError(webMethod, "C# can't handle methods that are of the same name as their containing class. Either rename the method, or use the @org.codehaus.enunciate.ClientName annotation to rename the method (or type) on the client-side.");

代码示例来源:origin: org.codehaus.enunciate/enunciate-amf

for (WebMethod webMethod : ei.getWebMethods()) {
 if (!isAMFTransient(webMethod)) {
  if (!isSupported(webMethod.getWebResult())) {
   result.addError(webMethod, "AMF doesn't support '" + webMethod.getWebResult() + "' as a return type.");
  for (WebParam webParam : webMethod.getWebParameters()) {
   if (!isSupported(webParam.getType())) {
    result.addError(webParam, "AMF doesn't support '" + webParam.getType() + "' as a parameter type.");

代码示例来源:origin: org.codehaus.enunciate/enunciate-full

@Override
public ValidationResult validateEndpointInterface(EndpointInterface ei) {
 ValidationResult result = new ValidationResult();
 HashSet<String> uniqueMethodNames = new HashSet<String>();
 for (WebMethod webMethod : ei.getWebMethods()) {
  if (!uniqueMethodNames.add(webMethod.getSimpleName())) {
   result.addError(webMethod.getPosition(), "Sorry, the xfire client module doesn't support overloaded methods yet.  Unfortunately, each method has " +
    "to have a unique name.");
  }
  for (WebParam webParam : webMethod.getWebParameters()) {
   if (webParam.isOutput()) {
    //todo: add support for in in/out parameters.
    result.addError(webParam.getPosition(), "The xfire client module doesn't support IN/OUT or OUT parameters yet....");
   }
  }
 }
 return result;
}

代码示例来源:origin: org.codehaus.enunciate/enunciate-full

/**
 * A set of the reference namespace for this method.
 *
 * @return A set of the reference namespace for this method.
 */
public Set<String> getReferencedNamespaces() {
 HashSet<String> namespaces = new HashSet<String>();
 Collection<WebMessage> messages = getMessages();
 for (WebMessage message : messages) {
  for (WebMessagePart part : message.getParts()) {
   namespaces.add(part.getParticleQName().getNamespaceURI());
  }
 }
 
 return namespaces;
}

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com