-1
cars.xml을 비 정렬 화하려고했지만 null 값을 반환합니다. XML에서 한 대의 자동차로이 방법을 시도했지만 목록에 문제가 있습니다.null 값을 반환하는 비 정렬 화
Main 클래스 :
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
public class Teste {
private final String USER_AGENT = "Mozilla/5.0";
public static void main(String[] args) throws Exception {
Teste http = new Teste();
System.out.println("Testing 1 - Send Http GET request");
http.sendGet();
// System.out.println("\nTesting 2 - Send Http POST request");
// http.sendPost();
}
// HTTP GET request
private void sendGet() throws Exception {
String url = "http://www.teste.com/cars.xml";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod("GET");
//add request header
con.setRequestProperty("User-Agent", USER_AGENT);
int responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
try {
//Transforma xml em objeto
JAXBContext aXBContext = JAXBContext.newInstance(Cars.class);
Unmarshaller cu = aXBContext.createUnmarshaller();
Cars cars = (Cars) cu.unmarshal(in);
if(cars != null){
System.out.println("Não é nulo!");
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
자동차 클래스 :
import java.util.ArrayList;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement (name = "Cars")
public class Cars {
private ArrayList<Car> cars = new ArrayList<>();
public ArrayList<Car> getCars() {
return cars;
}
@XmlElement
public void setCars(ArrayList<Car> cars) {
this.cars = cars;
}
}
Car 클래스 :
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "Car")
public class Car {
private String manufacturerCar;
private String modelCar;
private String doorsCar;
private String gearshift;
public String getManufacturerCar() {
return manufacturerCar;
}
@XmlElement
public void setManufacturerCar(String manufacturerCar) {
this.manufacturerCar = manufacturerCar;
}
public String getModelCar() {
return modelCar;
}
@XmlElement
public void setModelCar(String modelCar) {
this.modelCar = modelCar;
}
public String getDoorsCar() {
return doorsCar;
}
@XmlElement
public void setDoorsCar(String doorsCar) {
this.doorsCar = doorsCar;
}
public String getGearshift() {
return gearshift;
}
@XmlElement
public void setGearshift(String gearshift) {
this.gearshift = gearshift;
}
@Override
public String toString() {
return "Car{" + "manufacturerCar=" + manufacturerCar + ", modelCar=" + modelCar + ", doorsCar=" + doorsCar + ", gearshift=" + gearshift + '}';
}
}
그리고 XML :
<Cars>
<Car>
<manufacturerCar>VW</manufacturerCar>
<modelCar>FUSCA</modelCar>
<doorsCar>2</doorsCar>
<gearshift>MANUAL</gearshift>
</Car>
<Car>
<manufacturerCar>FORD</manufacturerCar>
<modelCar>FOCUS</modelCar>
<doorsCar>4</doorsCar>
<gearshift>AUTOMATICO</gearshift>
</Car>
<Car>
<manufacturerCar>FIAT</manufacturerCar>
<modelCar>UNO</modelCar>
<doorsCar>4</doorsCar>
<gearshift>MANUAL</gearshift>
</Car>
<Car>
<manufacturerCar>VW</manufacturerCar>
<modelCar>UP!</modelCar>
<doorsCar>4</doorsCar>
<gearshift>AUTOMATICO</gearshift>
</Car>
<Car>
<manufacturerCar>PORSHE</manufacturerCar>
<modelCar>Q100</modelCar>
<doorsCar>2</doorsCar>
<gearshift>AUTOMATICO</gearshift>
</Car>
<Car>
<manufacturerCar>RENAULT</manufacturerCar>
<modelCar>DUSTER</modelCar>
<doorsCar>4</doorsCar>
<gearshift>Manual</gearshift>
</Car>
<Car>
<manufacturerCar>HONDA</manufacturerCar>
<modelCar>CIVIC</modelCar>
<doorsCar>4</doorsCar>
<gearshift>Manual</gearshift>
</Car>
<Car>
<manufacturerCar>MITSUBISHI</manufacturerCar>
<modelCar>PAJERO</modelCar>
<doorsCar>4</doorsCar>
<gearshift>Manual</gearshift>
</Car>
</Cars>
프로젝트를 취소하면 null이 반환됩니다. 나는 그 문제가 JAXB 태그라고 생각했지만, 그 문제를 어떻게 해결할 수 있는지 진심으로 모릅니다.
내가 해봤 주석 될 필요가 있지만 작동하지 않았다 나타납니다 –