1

私はWebアプリケーションで働いています。使用したサーバーはApacheTomcat6http://localhost:8080/examples/README.txtです。サーバーを実行した後、mylocalhostからリソースにアクセスしようとしました。しかし、Eclipseから見つからないエラーメッセージファイルを表示しているリソースにアクセスできません。しかし、Ctrlキーを押しながらリンクを左クリックすると、リソースがEclipse作業領域で開いていました。サーバーを経由せずにアクセスできるのと同じリソース、つまりパスC:\Program Files (x86)\apache-tomcat-6.0.35\binに移動してをクリックしStartup.batます。このようにして、ファイルを開くことができます。Eclipseを介してそのリソースにアクセスしない理由を教えてください。

url = new URL("http://localhost:8080/examples/README.txt");
con = url.openConnection(); // open the url connection.
dis = new DataInputStream(con.getInputStream()); 
4

1 に答える 1

1

以下、以前紹介したブログより引用

Tomcat は実際には、共有可能なコードベース (CATALINA_HOME) とインスタンスごとの部分 (CATALINA_BASE) の 2 つの側面で構成されています。これにより、Tomcat の複数のコピーを、1 つのコードベースを使用して 1 つのサーバー上で実行できます。ほとんどの場合、CATALINA_HOME と CATALINA_BASE は同じ値です。これは、多くの場合、少なくとも開発者のマシンでは、特定のバージョンの Tomcat のコピーが 1 つしか使用されないためです。

ただし、Eclipse サーバー機能を使用して Tomcat サーバーを作成すると、独自の CATALINA_BASE が密かに作成され、選択されたファイルがコピーされ、それらのファイルのみがプラグインが所有するディレクトリにコピーされます。

火傷しました。CATALINA_HOME に独自のファイルを保持し、server.xml でそのファイルへの相対参照を使用していました。ファイルはコピーされず、Tomcat はクリーンに起動しませんでした。

最も簡単な解決策は、server.xml を編集し、相対パスを絶対パスに置き換えることでした。これにより、コピーされた構成でファイルの元の (この場合は唯一の) コピーを見つけることができます。

ただし、明らかに、CATALINA_BASE データのコピーは、新しいサーバー定義を作成するときにのみ発生します。古いサーバー定義を Eclipse から削除し、変更を反映させるために新しいサーバー定義を作成する必要がありました。

この投稿から、選択したファイルのみをコピーするEclipseサーバーと信じていますが、ファイルはコピーされません。この投稿を見て、これがあなたの問題に当てはまるかどうか考えてみてください。ベン

于 2012-09-17T11:12:16.457 に答える