클라이언트 및 서버 환경에서 문자열 배열을 반환하는 데 문제가 있습니다. 내가 얻은 결과는 클라이언트 응용 프로그램을 컴파일 할 때 아무 것도 아닙니다.문자열 배열 반환
는는 서버 응용 프로그램
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();
}
클라이언트 자바 응용 프로그램
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();
}
은 또한 I는 서버 응용 프로그램에 아래와 같이 "안녕하세요"와 작은 실험을 시도하고 그렇게, 괜찮 았는데 나는 웹 서비스가 잘 작동하는 것을 알고 있지만, 나는 단지 클라이언트 String 문자열 배열을 전달/리턴하는 것처럼 보이지 않는다.
String i = "hello";
return i;
PS : 나는 public static void main (String[] args) {
생성자를 대가없이 서버 응용 프로그램을 실행하려고하면 응용 프로그램이 완벽하게 정렬 화 XML에서의 ArrayList를 인쇄이 ArrayList를하고 system.out.print
을 변환합니다.
누군가 내가 약간의 빛을 비출 수 있다면 정말 고마워 할 것입니다. 감사.
04/01/2012 (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);
}
}
6월 1일/2013 (16:20) - XML 파일이 테스트에서 테스트까지 비어 있었기 때문에 실수를 해결했지만 XML 파일에는 데이터가 포함되어 있습니다. readFlight가 동일한 프로젝트/소스 패키지에있는 클래스에 무엇을 반환하는지 확인하기 위해 테스트 클래스를 만들었습니다. 결과는 성공했습니다 ... 정말 클라이언트 응용 프로그램에 간단한 hello 문자열을 보내 웹 서비스를 테스트하고 아무런 문제도 일으키지 않아 아이디어가 거의 소모되었습니다.
테스트 클래스 공용 클래스 테스트 {
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
'문자열 []의 항공편 = 새로운 String [] {로 시작하는 코드 블록을 무엇 'for (String s : flights)'로 끝나는가? – amphibient
나는 그 자신의 배열 문자열을 인쇄하여 그 작동 여부를 확인하는 것 같다. 따라서 String을 사용하지 않고 항공편을 인쇄하면 인쇄물이 인쇄됩니다. "[Ljava.lang.String; @ 312a47fe [Ljava.lang.String; @ 4edc8de9 [Ljava.lang.String; @ 71e8e471] – Ket
코드 컴파일 된? 'getFlight()'메서드는'String'을 반환하도록 선언 되었기 때문에'String' ['] 인'flights'을 반환합니다. – Genzer