【问题标题】:JBOSS webservice annotationsJBOSS 网络服务注解
【发布时间】:2011-01-10 23:57:12
【问题描述】:

背景

我正在尝试使用 SOAP 和 JBOSS 创建 Web 服务。我知道要创建一个 Web 服务,您需要执行以下操作:

import javax.jws.WebService;

@WebService
public class HelloImpl {

  /**
   * @param name
   * @return Say hello to the person.
   */
   public String sayHello(String name) {
     return "Hello, " + name + "!";
   }
}

我大致了解 java 注释的工作原理:

@nnotations 由 Java 语言定义。 Annotation 是一个类。当您使用注解标记某些内容时,编译器和运行时会安排该类的对象通过 java 反射在运行时可见。

感谢来自this 线程的 bmargulies。

我不确定 jboss 对注释做了什么。

问题 1:我认为 jboss 根据注释生成 xml 或 wsdl。它是否正确? 注意:我指的是@Webservice、@WebContent、@SecurityDomain、@Stateless 等标签

问题 2:如果 jboss 确实生成 xml 或 wsdl,我需要注释吗?我可以自己创建那个文件吗?

类似页面:

【问题讨论】:

    标签: java jboss web-services jax-ws annotations


    【解决方案1】:

    您应该更多地将注解视为 XML 配置文件的替代品/替代品。当 JBoss 启动时,它只扫描整个类路径以查找具有特定注释的类,然后将它们加载/实例化/映射到内存中。如果这里没有使用注释,JBoss 将只解析和读取 XML 配置文件以获取特定类所在位置和/或如何处理它们的提示,然后以大致相同的方式在内存中加载/实例化/映射它们。

    您可以自己定义 XML 配置文件。您甚至可以将它与注释同时使用,但请记住,XML 配置文件(通常)胜过/覆盖以注释的风格定义的相同配置 - 如果有的话。这是因为 XML 配置文件是外部可控的,无需一次又一次地重写/重建/重新部署所有 Java 代码。 JBoss根据带注释的类生成 XML 文件。

    【讨论】:

      【解决方案2】:
      1. JBoss 的 Web 服务堆栈只是 JAX-WS (JSR 224) 的实现。 JBoss 应该为您生成 WSDL,通常可以在 web 服务的 url 访问,并在末尾附加 ?wsdl。

      2. WSDL 并不是这些注释的唯一作用。他们还告诉 JBoss 你的类实现了一个或多个 Web 服务。

      JavaEE 教程中有一个关于 Web Services with JAX-WS 的部分更详细地解释了它们的工作原理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-16
        相关资源
        最近更新 更多