Jdeveloper战争部署到tomcat

时间:2013-06-11 10:22:44

标签: tomcat6 jdeveloper

我是新手。

我正在尝试发布将refcursor作为webservice返回的过程。 由于webservices不支持ref游标返回类型,所以我将返回类型切换为pl / sql表。

我在Jdeveloper studio 11.1.2.4.0中创建了jax rpc并对其进行了测试。这运行正常。我需要在tomcat服务器上部署它并且完全失败。

我将Jdeveloper生成的war文件复制到Tomcat中的webapps目录并启动了Tomcat,但这不起作用,因为引发了以下异常:

java.lang.ClassCastException: omsdevconn.MyWebServicetomcatUser cannot be cast to javax.servlet.Servlet

如果有人这样做了,那么我可以获得在Tomcat 6.0.37上部署它的过程的步骤吗?

提前致谢

2 个答案:

答案 0 :(得分:0)

下载jaxws-rt-2.0-SNAPSHOT.jar和jaxws-2_0.jar 复制到$ CATALINA_HOME / lib文件夹

在web-app

下的web.xml中添加以下内容
<web-app>  
**<listener>  
<listener-class>  
com.sun.xml.ws.transport.http.servlet.WSServletContextListener  
</listener-class>  
</listener>**  
............<!--your other servlet definations-->
</web-app>  

在您的应用程序web-inf文件夹下创建sun-jaxws.xml并配置端点。您可以查看jdeveloper生成的xml文件以获取所有信息

示例sun-jaxws.xml

<?xml version="1.0" encoding="UTF-8"?>
<endpoints  xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"version="2.0">
<endpoint name="fromwsdl"
interface="com.foo.yourserviceInterface"
implementation="com.foo.yourserviceClass"
wsdl="WEB-INF/wsdl/youservice.wsdl"
service="YourService"
port="YourServicePort"
url-pattern="/serviceAccessUrl" />
</endpoints> 

为您的应用程序创建war并在tomcat / webapps下部署您的应用程序 启动tomcat

启动tomcat后,您可以访问该服务 HTTP:/主机:端口/ yourservicename / methodInService

当您调用oracle plsql代码并且如果您正在使用任何oracle特定调用(如OracleCallabelStatement)然后在运行时,您将在尝试将callabelstatement转换为oraclecallabelstatement时从tomcat数据源获取类转换异常,因为您需要配置tomcat中的oracledatasource

http://www.oracle.com/technetwork/articles/oem/ucp-jdbc-tomcat-355431.html

有关用于XML Web服务的Java API(JAX-WS)的更多信息

https://jax-ws.java.net/nonav/2.2.1/docs/UsersGuide.html#1.0_Introduction

答案 1 :(得分:0)

将plsql过程公开为webservice

时,部署由Jdeveloper生成的服务的另一种方法

我不允许发布更多2个链接,因此请在http:之后添加并添加额外的“/”以更正链接

此解决方案使用Apache Axis,它允许您通过在幕后创建SOAP请求直接从浏览器调用您的Web服务(未公开为restful),并提供服务方法,为其提供soap消息

1)在Jdeveloper中生成一个web服务。它将在web-inf和其他一些xml文件中创建java文件和相应的“.class”文件,“wsdl文件”。记下.class文件和wsdl文件的位置。

2)下载eclipse并将其解压缩到您的硬盘上(它需要java才能运行所以你必须在系统上安装java。你可以从下载eclipse http:/www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/junosr1

3)从这里下载eclipse的Axis插件: HTTP:/www.apache.org/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/1.6.2/axis2-eclipse-service-plugin-1.6.2.zip
并在eclipse中安装它。安装说明 : HTTP:/axis.apache.org/axis2/java/core/tools/eclipse/plugin-installation.html

4)通过eclipse轴插件生成aar文件。说明: HTTP:/axis.apache.org/axis2/java/core/tools/eclipse/servicearchiver-plugin.html#Operation

5)在tomcat-user.xml文件中进行以下更改

<role rolename="tomcat"/>
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<role rolename="manager-jmx"/>  
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat,manager-gui,admin-gui,manager-jmx"/>

6)如果您在代码中使用ORACLE特定类(最有可能是Jdeveloper将生成):在tomcat(server.xml或context.xml)中配置oracle数据源。说明: HTTP:/www.oracle.com/technetwork/articles/oem/ucp-jdbc-tomcat-355431.html 确保在Tomcat / lib文件夹中有ojdbc6.jar和ucp.jar。

7)从此处下载轴战文件以在tomcat中部署: HTTP:/www.apache.org/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/1.6.2/axis2-eclipse-service-plugin-1.6.2.zip

解压缩zip,它将包含一个axis2.war文件。将此war文件放在“\ Tomcat \ webapps”目录下

8)启动tomcat。在tomcat控制台上查看部署轴是否有任何错误。如果一切正常,您应该能够在http:/ yourhost:yourport / axis2 /

上看到轴页面

9)单击“管理”链接。输入用户ID“admin”和密码“Axis2”并登录

10)单击上传并浏览到您在步骤4中生成的aar文件的位置并上传。在显示您成功后,单击“可用服务”。这需要一点时间,但你应该能够看到你的服务。点击服务看看wsdl验证

11)从浏览器调用您的服务方法并交叉手指和脚趾。 请注意,hit的链接将类似于

HTTP:/ yourhost:yourport /的的axis2 /服务 / YourServiceName / serviceMethod ARG1 =嗒嗒&安培;

确保你的arg名称正确。你应该能够从wsdl中看到正确的名字