При использовании wsimport «стандартный» способ:недостающее пространство имен в Javas порожденных wsimport
wsimport.exe -d C:/temp/generatedClasses -s C:/temp/sourceFiles C:/temp/myWsdl.wsdl
Я получаю исходные файлы, созданные как это:
@XmlRootElement(name = "PingRequest")
public class PingRequest{
Последний раз классы были получены тем же WSDL/XSDs должны были использоваться и генерируется выходной сигнал, как это:
@XmlRootElement(name = "PingRequest", namespace = "http://me.foo.bar/any/")
public class PingRequest {
Так пространство имен схем было inclu как атрибут аннотации. Поскольку создаваемый класс package-info.java имеет следующую запись:
@javax.xml.bind.annotation.XmlSchema(namespace = "http://me.foo.bar/any", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
Я предполагаю, что добавление имен-атрибута является сделана конфигурацией wsimport/JAXB схемы компилятора.
Может ли кто-нибудь объяснить мне, как архивировать атрибут пространства имен, включенный?
Update: Как ответил Блейз правильно (как описано в блог-ссылке) сгенерированный файл package-info.java определяет пространство имен для всех классов/типов внутри по упаковке. Вышеприведенный пример устарел, если всегда одно и то же пространство имен включено в @RootElement. Установка пространств имен на уровне @RootElement может использоваться для того, чтобы определенный @RootElement имел собственное пространство имен (которое в случае wsimport должно происходить автоматически).
Очень большое спасибо за любые предложения
Что я пробовал:
- используется Google, нашел https://www.java.net/node/681149 (exaclty мой вопрос от еще в 2008 году) без ответа :(
- чтения wsimport/jaxb параметры компилятора схемы, опробовали различные, что только контролируемый пакет ouput
- прочитал 12 похожих вопросов/ответов, которые были вставлены, когда я напечатал название этого квеста на
Ближайший я обнаружил, что есть что-то делать с пространствами имен было иметь «elementFormDefault =" квалифицированное»указано как в самой XSD и импорта части внутри WSDL, который я сделал.
Очень большое спасибо за этот совершенно правильный ответ! – JBA