【问题标题】:How to view WSDL on a JAX-WS web service running under Glassfish?如何在 Glassfish 下运行的 JAX-WS Web 服务上查看 WSDL?
【发布时间】:2012-09-22 02:22:46
【问题描述】:

如果我在 Glassfish 下运行 JAX-WS Web 服务,如何查看它的 WSDL?我知道我可以使用 wsgen 生成 WSDL 文件,但我想知道是否可以在 Glassfish 上拥有运行时 WSDL?

我已经尝试在 Tomcat 上运行我的 Web 服务,并且我能够通过访问我在 web.xml 上指定的 URL 模式来获得运行时 WSDL。但是,由于我在 Glassfish 上的 JAX-WS Web 服务上没有 web.xml,我不确定如何访问我的 WSDL。

【问题讨论】:

  • 你使用什么 JAX-WS 实现?
  • 我在 Glassfish 上使用默认的 JAX-WS。对于 Tomcat,我在 jax-ws.java.net 下载了我的 JAX-WS jar。他们使用相同的实现吗?我对 Metro 和 Java 中的原始 JAX-WS 感到困惑。我知道我在 Glassfish 上运行我的其他 Web 服务,可以在 Oracle 的网站上下载。所以我认为 Glassfish 的 JAXWS 是 Java 的实现。但是,在我提供的链接上,您可以看到 Metro 是 Glassfish 的子类。 Metro 是 Java 的 JAX-WS 实现的别名吗?
  • 它们是相同的,Glassfish 使用来自Metro 的Web 服务实现。 Metro 是许多 Web 服务相关项目的父项目,包括 JAX-WS 的参考实现。
  • @NickWilson:谢谢!我还在stackoverflow.com/questions/12670261/metro-vs-javas-jax-ws 上发布了这个问题,因为我认为这是一个新话题。你能回答我提供的链接上的问题吗?我仍然对某事感到困惑。当 Java 在 JDK 6 上捆绑了自己的 JAX-WS 实现时,为什么 Glassfish 使用 Metro?我认为 Glassfish 是 Java 的标准 J2EE 服务器,因为它托管在 Oracle 站点上?请在我提供的链接上回答我的问题。再次感谢!

标签: java tomcat wsdl glassfish jax-ws


【解决方案1】:

只要您知道 Web 服务的端点 URL,您就应该能够通过将 ?wsdl 附加到 URL 的末尾来查看运行时 WSDL。

【讨论】:

  • 谢谢!找到了。这是我的类名+“服务”+“?wsdl”。我也在 Glassfish 控制台中看到了链接。我之前在访问 Glassfish 控制台时遇到了问题,所以我看不到它。再次感谢!
  • 另外,如果有一个带有 serviceName 参数的 WebService 注解,wsdl 可以被认为是 - serviceName + "/" + className + "/" + "?wsdl"
【解决方案2】:
  1. 启动 GlassFish 服务器(例如:从 Eclipse 中的“服务器”选项卡)。
  2. 导航到 GlassFish 控制台(例如:http://localhost:4848/common/index.jsf
  3. 在左侧,点击应用程序
  4. 在右侧,点击项目名称
  5. Modules and Components部分,点击Action列中的View Endpoint
  6. 点击 WSDL 值(例如:/Test/MyClassService?wsdl - 现在您在 http://localhost:4848/common/applications/webServiceWsdl.jsf?appName=Test&wsdl=%2FTest%2FMyClassService%3Fwsdl
  7. 现在您可以看到 2 个链接(对于 HTTP 和 HTTPS)。单击第一个(例如:http://localhost.localdomain:8080/Test/MyClassService?wsdl),您将看到 WSDL 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    相关资源
    最近更新 更多