0

Java用のJAXBとWebサービスの例をいくつかやろうとしていました。私のコードでは、XML ファイルから顧客情報を表示したいと考えています。XML の読み取り/作成に JAXB ツールを使用しており、顧客オブジェクトに値を割り当てています。この顧客クラスの値を表示しようとすると、null 値が表示されます。実際、顧客情報を読み取って表示するコードは機能していますが、Web サービス内で使用すると正しく表示されません。ところで、Web サービスで XML を正しく作成できますが、読み取りに問題があります。これが私のコードです:

実装

旧バージョン @Override public void displayXML(Customer customer) {

     try {

            File file = new File("C:\\Users\\ahmet.tanakol\\Desktop\\myfile.xml");
            JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);

            Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
            customer = (Customer) jaxbUnmarshaller.unmarshal(file);
            customer.setAge(customer.getAge());
            customer.setId(customer.getId());
            customer.setName(customer.getName());


          } catch (JAXBException e) {
            e.printStackTrace();
          }

}

新しいバージョン (正しいもの)

    public String displayXML() {
    String msg  = "";
     try {

            File file = new File("C:\\Users\\ahmet.tanakol\\Desktop\\myfile.xml");
            JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);

            Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
            Customer customer = (Customer) jaxbUnmarshaller.unmarshal(file);

            msg +=  "Customer ID: " + customer.getId() + "Customer Age: " + customer.getAge() + "Customer Name: " + customer.getName();


          } catch (JAXBException e) {
            e.printStackTrace();
          }
    return msg;

}

そして、プログラムを実行したときの私の結果

顧客 ID: 100 顧客年齢: 29 顧客名: ahmet Hello World JAX-WS ahmet

4

0 に答える 0