クライアントおよびサーバー環境で文字列配列を返すのに問題があります。クライアントアプリケーションをコンパイルしたときに得られる結果は何もありません。
サーバーアプリケーション
public String[] getFlight() throws Exception {
AvailableFlights todayFlight = new AvailableFlights();
List<Flight> flights_today = todayFlight.getFlightDetail();
List<String> flights = new ArrayList<String>();
try {
flights_today = this.unmarshal(new File("Flights.xml"));
for (Flight flight : flights_today) {
String flightDetail = flight.getJourney()
+ " " + flight.getAirline()
+ " "+ String.valueOf(flight.getConnections())
+ " "+ String.valueOf(flight.getCost())
+ " "+ flight.getDestination()
+ " "+ flight.getOrigin()
+ " "+ String.valueOf(flight.getSeats());
flights.add(flightDetail);
System.out.println(flightDetail);
}
} catch (Exception e) {
}
return (String[]) flights.toArray();
}
クライアントJavaアプリケーション
import org.me.kettravel.*;
public class JavaApplication5 {
public static void main(String[] args) {
try {
System.out.println(getFlight());
} catch (Throwable ex) {
}
}
private static java.util.List<java.lang.String> getFlight() throws Exception_Exception {
org.me.kettravel.ReadFlightService service = new org.me.kettravel.ReadFlightService();
org.me.kettravel.ReadFlight port = service.getReadFlightPort();
return port.getFlight();
}
さらに、サーバーアプリで以下のような「こんにちは」を使って小さな実験を試みましたが、正常に機能したため、Webサービスは正常に機能していることはわかっていますが、フライトの文字列配列をクライアントに渡したり返したりできないようです。アプリ。
String i = "hello";
return i;
PS:public static void main (String[] args) {
コンストラクターを使用してサーバーアプリをリターンなしで実行しようとすると、アプリはアンマーシャリングxmlからarraylistを完全に出力し、arraylistに変換して実行しますsystem.out.print
。
私は本当にこれに固執しているので、誰かがいくつかの光を当てることができれば幸いです。ありがとう。
2012年4月1日(19:16) -Genzerによって調整が提案されましたが、クライアントアプリはまだサーバーアプリから応答を受け取りません。
2012年4月1日(23:24) -ボヘミアンによって提案された調整が行われました。以下を参照してください。クライアントアプリはエラーチェックを取得しています。javax.xml.ws.soap.SOAPFaultException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
public static void main(String[] args) {
try {
Object obj = getFlight();
System.out.println(obj);
} catch (Throwable ex) {
System.out.println(ex);
}
}
2013年6月1日(16:20)-XMLファイルがテストごとに空だったので、間違いに対処しましたが、xmlファイルにデータが含まれています。readFlightが同じプロジェクト/ソースパッケージにあるクラスに何かを返すかどうかを確認するためのテストクラスを作成しました。結果は成功です...本当にアイデアが不足しています=/クライアントアプリに単純なhello文字列を送信してWebサービスをテストしたので、問題なく動作しました。
テストクラス パブリッククラステスト{
public static void main(String[] args) {
readFlight rF = new readFlight();
try {
System.out.println(rF.getFlight());
} catch (Throwable ex) {
System.out.println(ex);
}
}
}
テストクラスからの出力: [London to Amsterdam KLM 1 200.0 Amsterdam London 100, London to Kuala Lumper Malaysia Airline 1 750.0 Kuala Lumper London 100, London to Manchester British Airway 1 50.0 Manchester London 56]
2013年10月1日(18:13) -問題は解決しました。unmarshallファイルに完全なディレクトリを指定する必要があります。例:C:/Users/User/Documents/NetBeansProjects/WebService/booking.xml