【问题标题】:Netbeans debug web service and web clientNetbeans 调试 Web 服务和 Web 客户端
【发布时间】:2017-03-15 22:21:15
【问题描述】:

我正在使用 Netbeans 创建部署在 Glashfish 上的 Web 客户端和 Web 服务(在调试模式下)。

我在 Web 服务中设置了一些断点,但是当我启动 Web 客户端(在调试中)并触发对 Web 服务方法的调用时,它永远不会在我设置的断点处停止。

我确实得到了正确的 SOAP 响应,因此我知道 Web 服务的代码已执行。 启动 Web 客户端时有没有办法调试 Web 服务?

现在我在 Web 服务中使用 Main 类来模拟客户端或不使用复杂类型的方法,我可以使用 Netbeans 中的“测试 Web 服务”。

【问题讨论】:

    标签: java web-services netbeans


    【解决方案1】:

    一些想法:

    • 获取 SOAP-UI 进行测试。它比任何客户都好 产生。您也可以在服务之间使用它。

    安装 SOAP-UI 后,以调试模式启动 glassfish。部署您的网络服务。创建一个新的 SOAP-UI 项目并将其指向您部署的 Web 服务的 WSDL 文件。

    警告:SOAP-UI 并不漂亮,但它非常好。

    导入 WSDL 后,打开 SOAP 项目节点,直到看到 Web 服务的操作。

    您应该会看到如下内容:

    扩展操作并填写请求的缺失部分。缺失值将由 ?在 XML 请求中,它们在初始请求中应该如下所示:

       <ecol:accountTotalDue>
               <!--Optional:-->
               <acc:AccountKeyInfo>
                  <!--Optional:-->
                  <acc:Client_Ref>?</acc:Client_Ref>
                  <!--Optional:-->
                  <acc:Debt_ID>?</acc:Debt_ID>
               </acc:AccountKeyInfo>
               <!--Optional:-->
               <acc:Total_Due>?</acc:Total_Due>
            </ecol:accountTotalDue>
    

    您可以像这样对它们进行硬编码:

        <ecol:accountTotalDue>
               <!--Optional:-->
               <acc:AccountKeyInfo>
                  <!--Optional:-->
                  <acc:Client_Ref>12834756183754</acc:Client_Ref>
                  <!--Optional:-->
                  <acc:Debt_ID>?</acc:Debt_ID>
               </acc:AccountKeyInfo>
               <!--Optional:-->
               <acc:Total_Due>10000000.00</acc:Total_Due>
            </ecol:accountTotalDue>
    

    请注意,您也可以编写脚本,例如我的 Web 服务在特殊标题部分中需要 GUID 和消息日期时间,因此我执行以下操作:

    <irix:MsgReqHdr>
             <irix:MsgGUID>${=java.util.UUID.randomUUID()}</irix:MsgGUID>
               <!--Optional:-->
               <irix:MsgDateTime>${=javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar.getInstance())}</irix:MsgDateTime>
    </irix:MsgReqHdr>
    

    您可以设置不同的请求来测试不同的场景。如果您正在进行认真的 Web 服务开发,那么它确实是必不可少的。它也做 REST。

    这对我来说通常比​​其他任何事情都好得多。我已经用 JBoss、Glassfish、Karaf、Fuse 和其他服务器完成了这项工作,所以它可以工作。

    【讨论】:

    • 感谢您的意见。这似乎是一个可靠的选择!但是,我要问的是在大学实验室的环境中,我们需要使用 NetBeans。
    • @JulioQc 您能否发布一些有关如何启动 Glassfish 的屏幕截图?还请询问您的讲师是否可以使用 SOAP-ui,因为它在行业中的使用远多于测试客户端,因此与您的职业更相关。
    猜你喜欢
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    相关资源
    最近更新 更多