如何调试 maven enunciate 插件 tomcat web 服务
how to debug maven enunciate plugin tomcat web service
我继承了一个包含许多 java Web 服务的项目。我想添加另一个,所以我一直在使用一个作为模板的。我添加了
<namespace id="bsghandle"
uri="http://bsghandle.queryservice.vcwh.oss.cable.company.com/" />
进入 enunciate.xml 的 <namespaces>
部分和
namespace="http://bsghandle.queryservice.vcwh.oss.cable.company.com/"
file="bsghandle.wsdl" />
进入<xml>
部分。
这是 pom.xml 片段
<plugin>
<groupId>org.codehaus.enunciate</groupId>
<artifactId>maven-enunciate-plugin</artifactId>
<version>1.25</version>
<configuration>
<configFile>${basedir}/src/main/webapp/WEB-INF/enunciate.xml</configFile>
<compileDebug>true</compileDebug>
<addGWTSources>false</addGWTSources>
<addActionscriptSources>false</addActionscriptSources>
</configuration>
<dependencies>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.7</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>assemble</goal>
</goals>
</execution>
</executions>
</plugin>
Maven 生成 web.xml 个条目,包括这个:
<filter-mapping>
<filter-name>wsdl-redirect-filter-bsghandle</filter-name>
<url-pattern>/soap/BsgHandleResourceService</url-pattern>
</filter-mapping>
我创建了三个类来处理请求,类似于模板。
我像这样向工作服务发送请求
./soapget.sh soap_serial.xml r.xml
其中 soapget.sh 是
#!/bin/bash
wget "http://localhost:5032/VCWH_QueryService/soap/SettopChannelMapResourceService" --post-file= --header="Content-Type: text/xml" -O
这会产生良好的响应,在 r.xml 中捕获。
现在,当我为我写的新服务尝试同样的事情时
./bsg.sh soap_rate.xml r2.xml
其中 bsg.sh 是
#!/bin/bash
wget "http://localhost:5032/VCWH_QueryService/soap/BsgHandleResourceService" --post-file= --header="Content-Type: text/xml" -O
我得到了无用的错误
2015-11-23 20:26:52 ERROR 500: Internal Server Error
该项目的日志文件也不包含任何更多信息。
当我查看工作服务的日志文件时(在 SettopChannelMapResource.java 中),我可以看到这条调试语句被命中作为输出到日志的第一件事
logger.debug("getChannelMapBySerialNumber() called for sn=" + serialNumber
+ " from ip" + request.getRemoteAddr());
但是在我的类似服务中,相同的记录器输出没有被命中。
我该如何调试?
我在 SoapUI 中使用了一个请求。出于某种原因,它返回了一条有用的错误消息,我能够找到并解决问题。即使修复后,另一种方法仍然返回相同的无用错误 500:内部服务器错误
我继承了一个包含许多 java Web 服务的项目。我想添加另一个,所以我一直在使用一个作为模板的。我添加了
<namespace id="bsghandle"
uri="http://bsghandle.queryservice.vcwh.oss.cable.company.com/" />
进入 enunciate.xml 的 <namespaces>
部分和
namespace="http://bsghandle.queryservice.vcwh.oss.cable.company.com/"
file="bsghandle.wsdl" />
进入<xml>
部分。
这是 pom.xml 片段
<plugin>
<groupId>org.codehaus.enunciate</groupId>
<artifactId>maven-enunciate-plugin</artifactId>
<version>1.25</version>
<configuration>
<configFile>${basedir}/src/main/webapp/WEB-INF/enunciate.xml</configFile>
<compileDebug>true</compileDebug>
<addGWTSources>false</addGWTSources>
<addActionscriptSources>false</addActionscriptSources>
</configuration>
<dependencies>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.7</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>assemble</goal>
</goals>
</execution>
</executions>
</plugin>
Maven 生成 web.xml 个条目,包括这个:
<filter-mapping>
<filter-name>wsdl-redirect-filter-bsghandle</filter-name>
<url-pattern>/soap/BsgHandleResourceService</url-pattern>
</filter-mapping>
我创建了三个类来处理请求,类似于模板。 我像这样向工作服务发送请求
./soapget.sh soap_serial.xml r.xml
其中 soapget.sh 是
#!/bin/bash
wget "http://localhost:5032/VCWH_QueryService/soap/SettopChannelMapResourceService" --post-file= --header="Content-Type: text/xml" -O
这会产生良好的响应,在 r.xml 中捕获。
现在,当我为我写的新服务尝试同样的事情时
./bsg.sh soap_rate.xml r2.xml
其中 bsg.sh 是
#!/bin/bash
wget "http://localhost:5032/VCWH_QueryService/soap/BsgHandleResourceService" --post-file= --header="Content-Type: text/xml" -O
我得到了无用的错误
2015-11-23 20:26:52 ERROR 500: Internal Server Error
该项目的日志文件也不包含任何更多信息。
当我查看工作服务的日志文件时(在 SettopChannelMapResource.java 中),我可以看到这条调试语句被命中作为输出到日志的第一件事
logger.debug("getChannelMapBySerialNumber() called for sn=" + serialNumber
+ " from ip" + request.getRemoteAddr());
但是在我的类似服务中,相同的记录器输出没有被命中。 我该如何调试?
我在 SoapUI 中使用了一个请求。出于某种原因,它返回了一条有用的错误消息,我能够找到并解决问题。即使修复后,另一种方法仍然返回相同的无用错误 500:内部服务器错误