У нас есть веб-приложение, которое использует JAXB из апплета. Все работает нормально, за исключением того, что при первом создании JAXBContext мы видим следующее, зарегистрированное в консоли апплета:
Creating JAXBContext...
network: Connecting https://myserver.com/MyApp/CC.ccc with proxy=DIRECT
network: Connecting https://myserver.com/MyApp/CC.ccc with cookie "__utma=69126149.1559268128.1262793475.1265211768.1271711769.3; JSESSIONID=723072c1c4bbc2598e402b3f24a5d12f3324"
network: Cache entry not found [url: https://myserver.com/MyApp/com/comm/servlet/generated/package-info.class, version: null]
network: Connecting https://myserver.com/MyApp/com/comm/servlet/generated/package-info.class with proxy=DIRECT
network: Connecting http://myserver.com:443/ with proxy=DIRECT
network: Connecting https://myserver.com/MyApp/com/comm/servlet/generated/package-info.class with cookie "__utma=69126149.1559268128.1262793475.1265211768.1271711769.3; JSESSIONID=723072c1c4bbc2598e402b3f24a5d12f3324"
Это происходит в общей сложности 20 раз и значительно замедляет наше приложение.
Я использую задачу муравья "xjc" (com.sun.tools.xjc.XJCTask), чтобы скомпилировать нашу схему в Java в пакете com / comm / servlet / generate / package. Код генерируется нормально, но нет package-info.java. Если я вручную создаю этот файл и компилирую и упаковываю код, package-info.class отсутствует в файле JAR.
Это моя задача XJC:
<target name="generateJAXBSource">
<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
<classpath>
<fileset dir="lib/jaxb" includes="*.jar" />
</classpath>
</taskdef>
<xjc schema="resources/requests/111.xsd"
destdir="src"
package="com.comm.servlet.generated"/>
</target>
Мой XSD выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xml="http://www.w3.org/XML/1998/namespace">
<xs:import namespace="http://www.w3.org/XML/1998/namespace" />
<xs:element name="InfoResponse">
<xs:complexType>
<xs:sequence>
<xs:element ref="WorkQueueItem" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
Я весь день гуглял, но никак не могу понять, как это обойти.
Я попробовал предложенный обходной путь здесь , чтобы убедиться, что package-info.java скомпилирован:
... но не повезло.
Могу ли я попросить JAXB не искать package-info.class?
Как я могу убедиться, что мой созданный вручную package-info.java окажется в файле JAR?
Спасибо.