背景
我正在尝试使用SOAP和JBOSS创建一个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,我是否需要注释?我可以自己创建该文件吗?
类似页面:
答案 0 :(得分:1)
您应该更多地将注释视为XML配置文件的替代/替代。当JBoss启动时,它只扫描整个类路径以查找具有特定注释的类,然后在内存中加载/实例化/映射它们。如果这里没有使用注释,JBoss将只解析和读取XML配置文件以获取特定类所在的提示和/或如何处理它们,然后以大致相同的方式在内存中加载/实例化/映射它们。 / p>
您可以自己定义XML配置文件。您甚至可以将其与注释同时使用,但请记住,XML配置文件(通常)超出/覆盖相同的配置,这些配置在注释的风格中定义 - 如果有的话。这是因为XML配置文件是外部可控的,无需一次又一次地重写/重新构建/重新部署所有Java代码。 JBoss 不根据带注释的类生成XML文件。
答案 1 :(得分:1)
JBoss的Web服务堆栈只是JAX-WS(JSR 224)的一个实现。 JBoss应该为你生成WSDL,通常可以在webservice的URL上访问,并在末尾添加?wsdl。
WSDL并不是这些注释的唯一功能。他们还告诉JBoss您的类实现了一个或多个Web服务。
JavaEE教程有一个关于Web Services with JAX-WS的部分,它解释了它们如何更详细地工作。