Tôi có một dự án mà tôi muốn làm việc với một tập hợp các Lớp được tạo bởi JAXB từ một XSD. Với các lớp này, tôi muốn marshall/unmarshall từ XML và JSON.thiếu jaxb.properties khi chạy khi được xây dựng với Maven
Tôi đã tìm ra mình cần Moxy Eclipselink để làm những gì tôi cần. Tôi đã thử nghiệm các lớp và quy trình của mình như một dự án Ant, sau đó tôi quyết định chuyển nó sang Maven để quản lý tốt hơn.
Tuy nhiên, tệp jaxb.properties dường như không được nhận dạng khi chạy.
Dự án của tôi có tạo phẩm Maven cho các đối tượng và một tạo phẩm khác cho logic/xử lý. Tôi đã kéo tóc ra cố gắng tìm ra nơi để đặt jaxb.properties để nó có thể được đọc.
Tôi đã thử
Đối tượng dự án
/src/main/resources/jaxb.properties
/src/main/java/[namespace]/jaxb.properties
logic Dự án
/src/main/resources/jaxb.properties
/src/main/java/[namespace]/jaxb.properties
Tuy nhiên, khi tôi cố gắng để có được những classname của JAXBContext của tôi, tôi vẫn nhận được:
class com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl
Nếu tôi sửa đổi cài đặt chạy của tôi bằng cách xác định một lựa chọn JVM của:
-Djavax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
tôi nhận được:
class org.eclipse.persistence.jaxb.JAXBContext
Trong cả hai dự án tôi đã quy định này trong pom.xml
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
Nếu tôi nhìn tại JAR, tôi thấy jaxb.properties trong đó.
Bây giờ tôi đang bối rối.
Blaise, cảm ơn liên kết GitHub đó. Sau khi perusing cấu trúc của thư mục, nó thực sự bắt đầu có ý nghĩa. Tôi đặt jaxb.properties vào gói đúng, và nó hoạt động rất tốt! –
Điều này rất hữu ích đối với tôi, tôi đã tái cấu trúc và di chuyển các lớp mô hình trong ứng dụng của mình nhưng quên di chuyển jaxb.properties. Cấu trúc gói phải khớp chính xác dưới cây tài nguyên. Của tôi đã được tắt bởi một gói và tất cả mọi thứ đã phá vỡ. Đây là một điểm rất quan trọng. – Jon
Cảm ơn bạn rất nhiều. Đây cũng là vấn đề của tôi. Đây là lý do tại sao tôi yêu stackoverflow. Vì vậy, nhiều người tuyệt vời như bạn để giúp đỡ! – atom88