0

wsdl2javaCXFコマンドを使用してJavaパッケージを生成しました。wsdlをTomcatサーバーにデプロイしたいのですが、サーバーを起動するとログにこれらのエラーが表示されます

私はopebEjbを使用しています。

wsdlが無効のようです。どうすればこれを確認できますか?

ログ:

原因:javax.xml.ws.WebServiceException:org.apache.cxf.service.factory.ServiceConstructionException at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:268)atorg.apache.cxf.jaxws。 EndpointImpl.publish(EndpointImpl.java:202)at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:397)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactoryの.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1412)。invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1373)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1333)... 30 more原因:org.apache.cxf.service.factory.ServiceConstructionException at org .apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:274)at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:371)at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean .buildServiceFromClass(JaxWsServiceFactoryBean.java:525)at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:422)at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:190 )org.apache.cxfで。jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:164)at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:100)at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java: 117)org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:168)at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:339)at org.apache.cxf.jaxws.EndpointImpl .doPublish(EndpointImpl.java:252)...39詳細create(JaxWsServerFactoryBean.java:168)at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:339)at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:252)... 39もっとcreate(JaxWsServerFactoryBean.java:168)at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:339)at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:252)... 39もっと

原因:com.sun.xml.bind.v2.runtime.IllegalAnnotationsException:IllegalAnnotationExceptionsの48カウント

要素{urn:hl7-org:v3}assignedDeviceに@XmlElementDeclを持つObjectFactoryはありません。 この問題は、次の場所に関連しています。保護されたjavax.xml.bind.JAXBElement com.santeos.dmp.iheprofiles.hl7.MFMIMT700701UV01AuthorOrPerformer.assignedDevice at com.santeos.dmp.iheprofiles.hl7.MFMIMT700701UV01AuthorOrPerformer at protected java.util.List com.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MFMIMT700701UV01ControlActProcess.authorOrPerformer at com.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MFMIMT700701UV01ControlActProcess at protected com.santeos.dmp.iheprofiles.hl7.PR comp.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MCCIMT000100UV01MessageのcontrolActProcess

要素{urn:hl7-org:v3}assignedPersonに@XmlElementDeclを持つObjectFactoryはありません。 この問題は、次の場所に関連しています。保護されたjavax.xml.bind.JAXBElement com.santeos.dmp.iheprofiles.hl7.MFMIMT700701UV01AuthorOrPerformer.assignedPerson at com.santeos.dmp.iheprofiles.hl7.MFMIMT700701UV01AuthorOrPerformer at protected java.util.List com.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MFMIMT700701UV01ControlActProcess.authorOrPerformer at com.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MFMIMT700701UV01ControlActProcess at protected com.santeos.dmp.iheprofiles.hl7.PR comp.santeos.dmp.iheprofiles.hl7.PRPAIN201304UV02MCCIMT000100UV01MessageのcontrolActProcess

4

2 に答える 2

1

上記のコメントでJulienが語ったように、複数の wsdl を使用している場合、この問題は各 wsdl のパッケージ名を変更することで解決できます。私の場合、2 つの wsdl があり、1 つは必要なすべての xsd と共にワークスペースにダウンロードされ、2 番目は URL を使用して使用されました。どちらも同じサーバーを指しています。最初の wsdl をダウンロードした理由は、オブジェクト ファクトリでの 2 つの名前の衝突でした。はい、単純に wsdl が完全に混乱していたため、外部バインディングは機能しませんでした。

そのため、wsdltojava を使用してソースを生成しようとすると、「@XmlElementDecl を持つ ObjectFactory がありません...」で失敗していました。Julienのコメントに従いましたが、問題は解決しました。これが最善でクリーンなソリューションかどうかはわかりませんが、うまくいきました。

于 2014-07-21T13:35:39.887 に答える
0

wsdl2java に渡すフラグは何ですか?

ObjectFactory クラスの生成コードを確認できますか? それらをチェックして、@XmlElementDecl で注釈が付けられているメソッドがあるかどうかを確認します。

于 2010-07-09T18:47:31.990 に答える