0

Java 6 を実行する TOMCAT 7 への WebSphere アプリの移植

私たちは単にこれができるかどうかを試しているだけです。EJB は使用しません。アプリケーションは 10 年前のもので、Oracle データベース (11g) に接続します。使用頻度が高いため、追加・修正を行っています。これは Websphere 6.1 で実行されており、いくつかの JAX-RPC Web サービスがあります。WebSphere 8.5 で実行するようにしましたが、コストがかかるため、TOMCAT 7 と JUNO を試すことにしました。

これは IBM ショップであるため、私は Tomcat を広範囲に使用したことはありません。多くのアプリが Tomcat を使用しているように見えるので、私は喜んで学びたいと思っています。Eclipse - Juno をインストールし、新しい動的 Web プロジェクトを作成した後、自分のワークスペースにアプリケーション ファイルを取り込みました。私たちのアプリケーションは EAR ファイルとしてデプロイされましたが、ここでは WAR ファイルとしてデプロイするつもりでした。ビルド時に多くの警告とエラーがありました。

私は TOMCAT をインストールし、オンラインで見つけた小さな webServices アプリのチュートリアルでそれをテストし、デプロイして正しく実行しました。サーバーをプロジェクトに持ち込みました。
ほとんどのコンパイル エラーは、jar ファイルを見つけて WEB/lib または Tomcat lib ディレクトリに移動することで、すぐに解決されました。たとえば、ojdbc6.jar ファイルは Tomcat ライブラリにあります。

現在、最適な構成を行うつもりはありません。これを機能させることができるかどうかを確認しようとしています。そのため、com.ibm.ws.runtime.jar をアプリケーションの WEB-INF ライブラリに移動して、ほとんどのコンパイル エラーを解消しました。今後は絶対に使用したくありませんが、これを実行する場合は、さらに進んで、それを削除し、Web サービスを再生成します。かなりすぐにクリーンなコンパイルができました。

Data Source Explorer にデータベース接続を余談として認識させましたが、アプリの起動に問題がありました。これが私がやったことです。
アプリの web.xml ファイルの先頭に、以下に示すように Oracle データベースのエントリを追加しました。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <display-name>SupplierNetRelease</display-name>
    <resource-ref>
        <description>SupplierNet Oracle Database</description>
        <res-ref-name>jdbc/SupplierNetDataSource</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
    <servlet>
        <display-name>MsgLogin</display-name>
        <servlet-name>MsgLogin</servlet-name>
        <servlet-class>com.alstom.power.suppliernet.servlets.MsgLogin</servlet-class>
    </servlet>.........

アプリに移植されたこのファイルを再生成する必要があるかどうか疑問に思っていましたか? Tomcat 7 は 3.0 で動作すると思いますが、web-app version="2.5" と表示されています。

Tomcat の context.xml ファイルに次を追加しました。

...<Resource name="SupplierNetDataSource"
        auth="Container"
        type="javax.sql.DataSource"
        username="xxxxxx"
        password="xxxxxx"
        driverClassName="oracle.jdbc.OracleDriver"
        url="jdbc:oracle:thin:@localhost:1521:supnjttx"
        maxActive="10"
        maxIdle="4"/>

</Context>

まだ server.xml ファイルに変更を加えていません。tomcat-Users.xml で、自分自身を manager-gui として追加しました。サーバー上で他のアプリケーションが実行されることは期待していませんが、私たちのものはありません。GlobalNamingResources セクションに何かを追加することが試してみるべきかどうかはわかりませんが、いくつかのドキュメントはそれを示唆しているようです.

サーバーを最初に起動したとき、追跡しなかったxml解析エラーが発生しましたが、現在の状況ではエラーは表示されません。「コンポーネントの起動に失敗しました」(以下を参照) 「原因: java.lang.IllegalArgumentException: 無効なサービス/サーブレット マッピングのオーソライザー」などのメッセージが表示されるようになりました。

INFO: Initializing ProtocolHandler ["http-apr-8080"]
Jun 4, 2013 10:36:56 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-apr-8009"]
Jun 4, 2013 10:36:56 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 633 ms
Jun 4, 2013 10:36:56 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jun 4, 2013 10:36:56 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.40
Jun 4, 2013 10:36:56 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive D:\apache-tomcat-7\apache-tomcat-7.0.40\
webapps\SupplierNetRelease.war
Jun 4, 2013 10:36:56 AM org.apache.tomcat.util.digester.Digester endElement
WARNING:   No rules found matching 'Context/resource'.
Jun 4, 2013 10:37:00 AM org.apache.catalina.core.ContainerBase addChildInternal
SEVERE: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngin
e[Catalina].StandardHost[localhost].StandardContext[/SupplierNetRelease]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:901)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:87
7)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)

        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)

        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:
1654)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> services/Au
thorizer in servlet mapping
        at org.apache.catalina.core.StandardContext.addServletMapping(StandardCo
ntext.java:3223)
        at org.apache.catalina.core.StandardContext.addServletMapping(StandardCo
ntext.java:3198)
        at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1366)
        at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.jav
a:1353)
        at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfi
g.java:878)
        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfi
g.java:369)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.java:119)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBa
se.java:90)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContex
t.java:5269)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        ... 11 more
Jun 4, 2013 10:37:00 AM org.apache.catalina.startup.HostConfig deployWAR
SEVERE: Error deploying web application archive D:\apache-tomcat-7\apache-tomcat
-7.0.40\webapps\SupplierNetRelease.war
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catal
ina.LifecycleException: Failed to start component [StandardEngine[Catalina].Stan
dardHost[localhost].StandardContext[/SupplierNetRelease]]
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:904)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:87
7)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)

        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)

        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:
1654)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Jun 4, 2013 10:37:00 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive D:\apache-tomcat-7\apache-tomcat-7.0.40\
webapps\WebServices.war                  <-------------------------------------- test app I deployed
Jun 4, 2013 10:37:00 AM org.apache.tomcat.util.digester.Digester endElement
WARNING:   No rules found matching 'Context/resource'.
Jun 4, 2013 10:37:01 AM com.sun.xml.ws.transport.http.servlet.WSServletDelegate
<init>
INFO: WSSERVLET14: JAX-WS servlet initializing
Jun 4, 2013 10:37:01 AM com.sun.xml.ws.transport.http.servlet.WSServletContextLi
stener contextInitialized
INFO: WSSERVLET12: JAX-WS context listener initializing
Jun 4, 2013 10:37:01 AM com.sun.xml.ws.transport.http.servlet.WSServletContextLi
stener contextInitialized
INFO: WSSERVLET12: JAX-WS context listener initializing
Jun 4, 2013 10:37:01 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory D:\apache-tomcat-7\apache-tomcat-7.0.4
0\webapps\docs
Jun 4, 2013 10:37:01 AM org.apache.tomcat.util.digester.Digester endElement
WARNING:   No rules found matching 'Context/resource'.
Jun 4, 2013 10:37:01 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory D:\apache-tomcat-7\apache-tomcat-7.0.4
0\webapps\examples
Jun 4, 2013 10:37:01 AM org.apache.tomcat.util.digester.Digester endElement
WARNING:   No rules found matching 'Context/resource'.
Jun 4, 2013 10:37:02 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory D:\apache-tomcat-7\apache-tomcat-7.0.4
0\webapps\host-manager
Jun 4, 2013 10:37:02 AM org.apache.tomcat.util.digester.Digester endElement
WARNING:   No rules found matching 'Context/resource'.
Jun 4, 2013 10:37:02 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory D:\apache-tomcat-7\apache-tomcat-7.0.4
0\webapps\manager
Jun 4, 2013 10:37:02 AM org.apache.tomcat.util.digester.Digester endElement
WARNING:   No rules found matching 'Context/resource'.
Jun 4, 2013 10:37:03 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory D:\apache-tomcat-7\apache-tomcat-7.0.4
0\webapps\ROOT
Jun 4, 2013 10:37:03 AM org.apache.tomcat.util.digester.Digester endElement
WARNING:   No rules found matching 'Context/resource'.
Jun 4, 2013 10:37:03 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-apr-8080"]
Jun 4, 2013 10:37:03 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-apr-8009"]
Jun 4, 2013 10:37:03 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 6755 ms

誰かが何かを提案できるなら、私はそれを感謝します. もっと見たい場合は、何が見たいかをはっきりと伝えてください。これをコンテキストなしで実行したいのですが、これは現時点では二次的なものです。明らかな何かを見逃した場合はお詫び申し上げます。前もって感謝します。

4

2 に答える 2