2012-01-06 11 views
0

私はネットビーンを使用してWebサービスを作成し、Glassfishをサーバーとして使用してネットビーン内でテストしています。Webサービスからファイルにアクセスする

私はWebサービスからデータを読み込み、書き込めるようにしたいというファイルがあります。しかし、どこにファイルを置くのですか? 「コースは」私のNetBeansプロジェクトのルートである場合、私は次の場所にファイルを配置しようとしている:

\Course 
\Course\xml-resources\jaxb\FlightRequest 
\Course\web 
\Course\web\WEB-INF 
\Course\src\java\org\me\FBooking 
\Course\build\web 
\Course\build\web\WEB-INF 
\Course\build\web\WEB-INF\classes 

をして使用して、私のアンマーシャリングのコードでは、Webサービスでそれをアクセスしてみました(ファイルとして私がアクセスしようとしていますですXML文書):それはファイル

ので見つけるカント

un = (AvailableFlights) unmarshaller.unmarshal(new java.io.File("AvailableFlights.xml")); 

しかし、私はそれを配置することが出来るのですか?

+0

ファイルから読み込む必要がある場合は、src/main/resources(アプリケーションリソースの標準の場所)に配置します。 src/main/resourcesの下にあるファイルをコンパイラの出力フォルダ(WEB-INF/classes for webapp)にコピーすることを確認してください。 – DagR

+0

ファイルを\ Course \ build \ web \ WEB-INF \ classesに配置しました。アクセスできません。 私もWebサービスを作ってみました、それはに保存し、デフォルトの場所を見つけるために、ファイルを書いて、ために表示されます。 C:\プログラムファイル\のglassfish-3.1.1 \ GlassFishの\ドメイン\ DOMAIN1 \ しかし、私私がこのWebサービスを配備していたなら、これは実用的な場所にはならないだろう – user1135290

答えて

0

ファイルに書き込む必要がある場合は、そのファイルを展開可能なコード外に配置する必要があります。

読み取り専用アクセスが必要な場合は、ファイルをweb /に配置すると、Webブラウザからファイルにアクセスできるようになります。それはあなたが望むものではないかもしれません。

ファイルをWEB-INF/classesの下に置くと、コードにアクセスできますが、公開されません。

ファイルにアクセスするためのコードフラグメントは、ファイルシステム上のファイルに対してのみ機能し、WARの一部としては配布しないファイルに対しては機能するため、パッケージ化する場合はファイルを読み込む別の方法を検討する必要がありますそれはあなたのWARの一部です。

0

は、WARファイル内のファイルから読み込むことができる必要があり

getClass().getResourceAsStream("file") 

を見てみましょう。 (今はテストしていませんが)これはファイルからの読み込みのみです。

関連する問題