Điều này khiến tôi phát điên và tôi bị sốc rằng official documentation hoàn toàn là USEN.Cách nâng cấp OpenJPA với Ant + IntelliJ IDEA
Dưới đây là những gì tôi có:
- IntelliJ IDEA 11
- OpenJPA 2.1.1
Kể từ OpenJPA được thêm vào danh sách các thư viện sử dụng tôi đã có classpath để OpenJPA trông giống như này
<path id="library.openjpa.classpath">
<fileset dir="${basedir}/lib/openjpa">
<patternset refid="library.patterns"/>
</fileset>
</path>
Theo tài liệu chính thức tôi đã thêm vào sau mục tiêu
<target name="enhance">
<copy includeemptydirs="false" todir="${basedir}/lib/openjpa">
<fileset dir="src" excludes="**/*.launch, **/*.java"/>
</copy>
<taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask">
<classpath refid="library.openjpa.classpath"/>
</taskdef>
<openjpac>
<classpath refid="library.openjpa.classpath"/>
</openjpac>
</target>
Nó mang lại cho tôi ngoại lệ
C: \ work \ prj \ build.xml: 283: org.apache.openjpa.util.MetaDataException: MetaDataFactory không thể được cấu hình (conf. newMetaDataFactoryInstance() trả về null). Điều này có nghĩa là không tìm thấy thuộc tính cấu hình nào. Đảm bảo rằng bạn có tệp META-INF/persistence.xml, có sẵn trong đường dẫn lớp học của bạn, hoặc tệp thuộc tính bạn đang sử dụng để định cấu hình là khả dụng. Nếu bạn đang sử dụng Ant, vui lòng xem hoặc thuộc tính của phần tử lồng nhau của công việc. Điều này cũng có thể xảy ra nếu bình phân phối OpenJPA của bạn bị hỏng hoặc nếu chính sách bảo mật của bạn quá nghiêm ngặt.
tôi thử nghiệm với Process Monitor và có thể thấy rằng nó sẽ mở ra và đọcpersistence.xml
.
Một số người filed bug gặp sự cố tôi có và câu trả lời mà anh nhận được là việc tìm kiếm persistence.xml
không phải là một vấn đề.
Câu hỏi là:
- Tôi có thể làm gì để làm cho nó hoạt động?
- Tôi có thể làm cho nó hoạt động bằng cách bỏ qua nhu cầu
persistence.xml
và chỉ định mẫu cho các tệp .class mà tôi muốn được nâng cao? - Đó là câu hỏi về Ant. Làm thế nào tôi có thể làm cho OpenJPA enhancer tìm kiếm
persistence.xml
trong thư mục khác với nơiopenjpa-2.1.1.jar
cư trú?
Bạn đã xác minh rằng thư mục META-INF có trên đường dẫn lớp của bạn không? – Rick
Tôi không biết cách chỉ định thư mục classpath bổ sung trong tập lệnh Ant. Nhưng chỉ để chắc chắn tôi đã sao chép 'persistence.xml' vào thư mục chứa jar của OpenJPA. – expert