, но теперь я не знаю, как запустить свое приложение, так как эта библиотека используется другим приложением

я есть это тестовое приложение Java:

@XmlRootElement
public class Car {

    @XmlElement(namespace="http://www.example.com/CAR_NAME")
    private String name;

    @XmlElement(namespace="http://www.example.com/CAR_PRICE")
    private int price;

    @XmlElement(namespace="http://www.example.com/CAR_BUS")
    private Bus bus;

    //constructors, getters and setters

 @XmlRootElement
 public class Bus {

    @XmlElement(namespace="http://www.example.com/BUS_NAME")
    private String name;

    @XmlElement(namespace="http://www.example.com/BUS_PRICE")
    private int price;

    //constructors, getters and setters

@XmlRootElement
public class Request {

    @XmlAnyElement
    private Element element;

    //constructors, getters and setters

И я пытаюсь преобразовать строку XML вElement установить этоelement вRequest и преобразовать запрос вstring.

public class Main {
    public static void main(String[] args) throws JAXBException, ParserConfigurationException, IOException, SAXException {

        String hz = "<car xmlns:ns6=\"http://www.example.com/CAR_BUS\" xmlns:ns5=\"http://www.example.com/CAR_NAME\" xmlns:ns2=\"http://www.example.com/CAR_PRICE\" xmlns:ns4=\"http://www.example.com/BUS_PRICE\" xmlns:ns3=\"http://www.example.com/BUS_NAME\">\n" +
                "    <ns5:name>CarName1</ns5:name>\n" +
                "    <ns2:price>999</ns2:price>\n" +
                "    <ns6:bus>\n" +
                "        <ns3:name>BusName1</ns3:name>\n" +
                "        <ns4:price>666</ns4:price>\n" +
                "    </ns6:bus>\n" +
                "</car>";


        JAXBContext jaxbContext = JAXBContext.newInstance(Car.class, Bus.class, Request.class);
        Marshaller marshaller = jaxbContext.createMarshaller();

        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        Element documentElement = builder.parse(new InputSource(new StringReader(hz))).getDocumentElement();


        Document document = documentElement.getOwnerDocument();
        DOMImplementationLS domImplLS = (DOMImplementationLS) document.getImplementation();
        LSSerializer serializer = domImplLS.createLSSerializer();
        String s = serializer.writeToString(documentElement);

        System.out.println(s);

        System.out.println("------------------------------");

        Request request = new Request(documentElement);

        StringWriter sw = new StringWriter();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.marshal(request, sw);
        String s1 = sw.toString();
        System.out.println(s1);

    }
}

Когда я запускаю это приложение на моей машине, я получаю следующий вывод:

<?xml version="1.0" encoding="UTF-16"?>
<car xmlns:ns2="http://www.example.com/CAR_PRICE" xmlns:ns3="http://www.example.com/BUS_NAME" xmlns:ns4="http://www.example.com/BUS_PRICE" xmlns:ns5="http://www.example.com/CAR_NAME" xmlns:ns6="http://www.example.com/CAR_BUS">
    <ns5:name>CarName1</ns5:name>
    <ns2:price>999</ns2:price>
    <ns6:bus>
        <ns3:name>BusName1</ns3:name>
        <ns4:price>666</ns4:price>
    </ns6:bus>
</car>
------------------------------
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request xmlns:ns6="http://www.example.com/CAR_BUS" xmlns:ns5="http://www.example.com/CAR_NAME" xmlns:ns2="http://www.example.com/CAR_PRICE" xmlns:ns4="http://www.example.com/BUS_PRICE" xmlns:ns3="http://www.example.com/BUS_NAME">
    <car>

        <ns5:name>CarName1</ns5:name>

        <ns2:price>999</ns2:price>

        <ns6:bus>

            <ns3:name>BusName1</ns3:name>

            <ns4:price>666</ns4:price>
    </ns6:bus>
</car>
</request>

Но когда я запускаю это приложение на тестовом компьютере, я получаю следующий вывод:

<?xml version="1.0" encoding="UTF-16"?>
<car xmlns:ns2="http://www.example.com/CAR_PRICE" xmlns:ns3="http://www.example.
com/BUS_NAME" xmlns:ns4="http://www.example.com/BUS_PRICE" xmlns:ns5="http://www.example.com/CAR_NAME" xmlns:ns6="http://www.example.com/CAR_BUS">
    <ns5:name>CarName1</ns5:name>
    <ns2:price>999</ns2:price>
    <ns6:bus>
        <ns3:name>BusName1</ns3:name>
        <ns4:price>666</ns4:price>
    </ns6:bus>
</car>
------------------------------
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request xmlns:ns6="http://www.example.com/CAR_BUS" xmlns:ns5="http://www.example.com/CAR_NAME" xmlns:ns2="http://www.example.com/CAR_PRICE" xmlns:ns4="http://www.example.com/BUS_PRICE" xmlns:ns3="http://www.example.com/BUS_NAME">
    <car>

        <name>CarName1</name>

        <price>999</price>

        <bus>

            <name>BusName1</name>

            <price>666</price>
    </bus>
</car>
</request>

На тестовой машине отсутствуют меткиns5, ns6, ns2

Я не понимаю, как это может быть. Та же версия Java, то же приложение, но другой вывод. Из-за этого у меня проблемы на рабочем сервере. Как это исправить или где найти причину?

Ответы на вопрос(0)

Ваш ответ на вопрос