在我的本地服务器上启动并运行公司Web服务测试套件环境时遇到了一些困难。我从他们那里收到了2个已经部署在tomcat服务器上的war文件。
测试套件会损害2个组件。
- xmlvend-将server.war
- xmlvend-将client.war
醇>
我可以访问服务器
和客户端Web应用程序
在服务器网页上,我收到以下消息:
协议测试服务器
这是xmlvend Scenario文件的协议测试服务器 存储/读取在以下位置:
C:\ Documents and Settings \ LocalService / xmlvend / test-server / 消息调用可以基于标准的XMLVend 2.1 WSDL, 通过将POST请求发送到以下端点地址: http://127.0.0.1:8080/xmlvend-server/service
一切似乎都很好,但是当我点击端点地址(上面)时,我收到以下错误/异常消息:
异常: javax.servlet.ServletException:无法获取 对SOAP引擎的引用 xmlhttp.framework.MessageReceiverServlet.init(MessageReceiverServlet.java:50)
根本原因: java.lang.Exception:上下文中没有SOAPProcessor xmlhttp.framework.MessageReceiverServlet.init(MessageReceiverServlet.java:45)
如果我尝试访问Web服务的wsdl文件(xmlvend-full-2.1.wsdl),我会收到与上面相同的异常。
我也从公司收到了wsdl,但我应该把它放在哪里? 它应该放在tomcat的webapps / test-server文件夹中吗?
有人能告诉我如何让网络应用程序运行吗? 任何帮助非常感谢,我甚至配置服务器很容易 VNC / RDP远程访问请联系我,如果你可以帮助我。
谢谢
我的设置:
- Tomcat服务器7.0.20
- Java SDK / SE 7
- java version 1.4.2_03
- Windows XP SP3
其他信息:
服务器 - web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee file:/Users/dawidl/Projects/solms/solmsRoot/externalResources/sun/xml/schemas/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>XMLVend Server (Web Services Testing Framework)</display-name>
<description>
A zero-business-logic web services server to perform protocol testing. All requests
with a URI of /service/* (and POST method) indicate web services (SOAP/HTTP) requests, the rest
are normal XHTML,etc/HTTP
</description>
<!-- Decodes any HTTP Requests sent using GZIP compression. Does so transparently,
so all components in the chain after it are unaware of the compressed request. This
is why the stupid Osmotic filter that follows prints out the annoying message
'request not compressed' even though it was originally (and we can't turn off
the printouts, because osmotic do not make their source available. -->
<filter>
<filter-name>HttpRequestCompressionFilter</filter-name>
<filter-class>xmlhttp.framework.io.HttpCompressionFilter</filter-class>
</filter>
<!-- Use off-the-shelf (Osmotic Web) Response Compression Filter (Supposed
to do two-way, but it's broken, which is why we wrote our own filter.-->
<filter>
<filter-name>HttpResponseCompressionFilter</filter-name>
<filter-class>com.osmoticweb.gzipfilter.GZIP2WayFilter</filter-class>
</filter>
<!-- Filter to cater for non-conforming user agents (read: MS Internet Explorer)
that do not understand the XHTML MIME type -->
<filter>
<filter-name>XHTMLMIMEFilter</filter-name>
<filter-class>za.co.solms.web.xhtml.MIMEFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HttpRequestCompressionFilter</filter-name>
<url-pattern>/service/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>HttpResponseCompressionFilter</filter-name>
<url-pattern>/service/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>XHTMLMIMEFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>MessageReceiver</servlet-name>
<servlet-class>xmlhttp.framework.MessageReceiverServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MessageReceiver</servlet-name>
<url-pattern>/service/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jspx</welcome-file>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<!-- Sets up the SOAP Engine and Processor(s) -->
<listener>
<listener-class>xmlhttp.framework.config.FrameworkSetupListener</listener-class>
</listener>
</web-app>
客户端 - web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>XMLVend Client (Web Services Testing Framework)</display-name>
<description>
A basic web services client to perform protocol testing.
</description>
<!-- Global web Service Parameters (Use-Case Centric) -->
<context-param>
<!-- Contract (each 'operation' name maps to a 'UseCase') -->
<param-name>service.wsdl</param-name>
<param-value>/contract/xmlvend-full-2.1.wsdl</param-value>
</context-param>
<context-param>
<!-- Views (contains files with naming convention: MyUseCase-[in|out].jspx) -->
<param-name>service.operations.views</param-name>
<param-value>/useCaseViews</param-value>
</context-param>
<!-- FIRST INSTALLATION DEFAULTS (overridden by the config file created in §xmlvend/test-client/configuration.properties) -->
<!-- TODO: Move this to a separate XML file in the format expected by the ConfigurationServlet -->
<context-param>
<param-name>init.xmlvend.transport.service.url</param-name>
<param-value>http://localhost:8080/xmlvend-server/service/</param-value>
</context-param>
<context-param>
<!-- Compress all requests? -->
<param-name>init.xmlvend.transport.compression.request</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<!-- Explicitly support compressed responses? -->
<param-name>init.xmlvend.transport.compression.response</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>init.xmlvend.client.clientID</param-name>
<param-value>6004708001981</param-value>
</context-param>
<context-param>
<param-name>init.xmlvend.client.clientIDType</param-name>
<!-- NOTE: The namespace prefix presented here *must* match with the prefix
defined in the message templates -->
<param-value>b0:EANDeviceID</param-value>
</context-param>
<context-param>
<param-name>init.xmlvend.client.terminalID</param-name>
<param-value>0000000000001</param-value>
</context-param>
<context-param>
<param-name>init.xmlvend.client.terminalIDType</param-name>
<!-- NOTE: The namespace prefix presented here *must* match with the prefix
defined in the message templates -->
<param-value>b0:EANDeviceID</param-value>
</context-param>
<context-param>
<!-- Automatically perform advice confirmation after each request? -->
<param-name>init.xmlvend.advice.autoConfirm</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<!-- Automatically perform advice reversal in the case of errors? -->
<param-name>init.xmlvend.advice.autoReversal</param-name>
<param-value>false</param-value>
</context-param>
<!-- Use-case handler (controller) servlet -->
<servlet>
<servlet-name>UseCaseServlet</servlet-name>
<servlet-class>za.co.eskom.nrs.xmlvend.client.UseCaseServlet</servlet-class>
</servlet>
<!-- Configuration view/update servlet -->
<servlet>
<servlet-name>ConfigurationServlet</servlet-name>
<servlet-class>za.co.eskom.nrs.xmlvend.client.setup.ConfigurationServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UseCaseServlet</servlet-name>
<url-pattern>/useCase/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ConfigurationServlet</servlet-name>
<url-pattern>/admin/configuration</url-pattern>
</servlet-mapping>
<!-- Filter to make the global configuration keys available to every
request as string attributes -->
<filter>
<filter-name>ConfigurationProvider</filter-name>
<filter-class>za.co.eskom.nrs.xmlvend.client.setup.ConfigurationProviderFilter</filter-class>
</filter>
<!-- Filter to cater for non-conforming user agents (read: MS Internet Explorer)
that do not understand XHTML -->
<filter>
<filter-name>XHTMLMIMEFilter</filter-name>
<filter-class>za.co.solms.web.xhtml.MIMEFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ConfigurationProvider</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>XHTMLMIMEFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jspx</welcome-file>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<!-- Sets up the client at start-up (configuration, etc) -->
<listener>
<listener-class>za.co.eskom.nrs.xmlvend.client.setup.ClientSetupListener</listener-class>
</listener>
<!-- SOAP Fault Error Page -->
<error-page>
<exception-type>za.co.eskom.nrs.xmlvend.client.SOAPFault</exception-type>
<location>/useCaseViews/_error-SOAPFault.jspx</location>
</error-page>
<!-- Any other (general) server errors -->
<!-- error-page>
<error-code>500</error-code>
<location>/useCaseViews/_error-generic.jspx</location>
</error-page-->
</web-app>
答案 0 :(得分:3)
在服务器应用程序的web.xml中声明的上下文侦听器似乎应该设置一个框架,在这个框架上,servlet会给你错误依赖:
<!-- Sets up the SOAP Engine and Processor(s) -->
<listener>
<listener-class>xmlhttp.framework.config.FrameworkSetupListener</listener-class>
</listener>
看了一下源代码后,MessageReceiverServlet无法通过属性“soap.engine”在servlet上下文中找到SoapEngine。这应该由FrameworkSetupListener放在那里。
应该有其他例外,说明为什么在应用服务器的日志中失败了(检查tomcat安装目录/ logs以获取名为catalina.out的文件)。
推测,我相信这很可能与您关于WSDL应该放在何处的问题有关。从阅读应用程序期望的源代码(并创建它是否存在)主目录下的文件夹,因此在主目录中查看名为“xmlvend”的文件夹并放置所有.xsd / .wsdl文件在“/ test-server / schemas”的子文件夹中。
执行此操作后,重新启动Tomcat应该会给您不同的结果。如果这不起作用,请从上面提到的tomcat日志中添加一些提取(异常堆栈跟踪最有用),它们应该提供更多线索。