Как я могу проверить действительность WSDL, потому что я получил IllegalAnnotationsException? - PullRequest
0 голосов
/ 06 июля 2010

Я сгенерировал пакет java с помощью команды wsdl2java CXF.Теперь я хочу развернуть wsdl на сервере tomcat, но я получил эти ошибки в журналах, когда я запускаю сервер

Я использую opebEjb.

Похоже, wsdl недопустим.Как я могу проверить это?

Журнал:

Причина: javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException at org.apache.cxf.jaxws.EndpointImpl.doPublish (EndpointImpl.java:268) в org.apache.cxf.jaxws.EndpointImpl.publish (EndpointImpl.java:202) в org.apache.cxf.jaxws.EndpointlmpI.ImppointImpl.pl..java: 397) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) в sun.reflect.DelegatingMethodAmport.jpglang.reflect.Method.invoke (Method.java:597) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.AbstractAutowireCapableBeanFactory.java:1373) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1333) ... еще 30 причин..apache.cxf.service.factory..ReflectionServiceFactoryBean.: 164) в org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint (AbstractWSDLBasedEndpointFactory.java:100) в org.apache.cxf.frontend.ServerFactoryBean.create (ServerFactoryBean.java:117) в org.apache.cxf.jaxws.JaxWsServerFactoryBean.create (JaxWsServerFactoryBean.java:168) в org.apache.cxf.jaxws.EndpointImpl.getServer (конечная точка atxImp33).jaxws.EndpointImpl.doPublish (EndpointImpl.java:252) ... еще 39

Вызвано: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 48 подсчетов IllegalAnnotationExceptions

Не существует ObjectFactory с @XmlElementDecl для элемента {urn: hl7-org: v3} assignDevice. Эта проблема связана со следующим расположением: в защищенном javax.xml.bind.JAXBElement com.santeos.dmp.iheprofiles.hl7.MFMIMT700701UV01AuthorOrPerformer.assignedDevice на com.santeos.dmp.iheprofiles.hl7.MFMIMT700701UV01AuthorOrPerformer в защищенном java.util.List com.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MFMIMT700701UV01ControlActProcess.authorOrPerformer на ком.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MFMIMT700701UV01ControlActProcess на защищенном com.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MFMIMT700701UV01ControlActProcess com.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MCCIMT000100UV01Message.controlActProcess на com.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MCCIMT000100UV01Message

1020 * Там нет ObjectFactory с @XmlElementDecl для элемента {urn: hl7-org: v3} assignPerson. эта проблема связана со следующим местоположением: в защищенном javax.xml.bind.JAXBElement com.santeos.dmp.iheprofiles.hl7.MFMIMT700701UV01AuthorOrPerformer.assignedteerson.mpignedPerson на..iheprofiles.hl7.MFMIMT700701UV01AuthorOrPerformerв защищенном java.util.List com.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MFMIMT700701UV01ControlActProcess.authorOrPerformer в com.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MFMIMT700701UV01ControlActProcess at protected com.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MFMIMT700701UV01ControlActProcess com.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MCCIMT000100UV01Message.controlA на com.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MCCIMT000100UV01Сообщение

Ответы [ 2 ]

1 голос
/ 21 июля 2014

Как сказал Julien в комментарии выше, эту проблему можно решить, изменив имя пакета для каждого wsdl, если вы используете более одного wsdl.В моем случае у меня было два wsdl, один загруженный в мое рабочее пространство вместе со всеми необходимыми xsd, а второй использованный с использованием URL.Оба они указывают на один и тот же сервер.Причиной загрузки первого wsdl стало столкновение двух имен в фабрике объектов.Да, внешние привязки не сработали, просто потому, что wsdl был полным беспорядком.

Итак, когда я пытался сгенерировать источники с помощью wsdltojava, он завершился неудачно с «Нет ObjectFactory с @XmlElementDecl ... ".Я последовал комментариям Julien , и проблема была решена.Я не уверен, что это лучшее и более чистое решение, но оно сработало.

0 голосов
/ 09 июля 2010

Какие флаги вы передаете в wsdl2java?

Можете ли вы проверить сгенерированный код для классов ObjectFactory?Проверьте их, чтобы увидеть, аннотированы ли какие-либо методы с помощью @ XmlElementDecl.

...