2016-02-25 2 views
0

Я столкнулся с проблемой - для меня - запутанной ситуацией, когда я пытался издеваться над существующим веб-сервисом.Как насмехаться с web-сервисом с JBoss 7

Аннотация

Я пытаюсь издеваться в Sharepoint WebService, используя сгенерированные интерфейсы из WSDL этой службы. Это как-то не получается. Наивно, я просто создал веб-сервис EJB, реализующий интерфейс, который был создан из WSDL.

1. Установка

У нас есть приложение JEE на JBoss 7. потребляющий Служба SOAP, предоставленную Sharepoint DMS. Мы инкапсулировали WSDL API в автономный JAR API JMS, используя maven и плагин CXF. Этот DMS API используется на фабрике вызовов, которая создает DocumentSoap с этого объекта - это настоящий SOAP-клиент, используемый JEE-приложением.

2. Ложная

Для тестовой интеграции целей мы отправляем другое приложение EJB вместе с EAR продукта. Этот другой EJB содержит службы, сервлеты, приборы для передачи данных и т. Д. И он должен содержать макет webservice. Веб-сервис должен соответствовать спецификации веб-службы Sharepoint.

3. То, что я сделал

Я создал новый WebService Bean с помощью API баночку DMS. Похоже, что это

/** 
* Created by me on 23.02.2016. 
*/ 
@WebService(portName = "documentPort" 
      , serviceName = "Documents" 
      , targetNamespace = "http://FooService.SharePoint.API.Webservices.Documents" 
      , name = "Documents" 
      , endpointInterface = "de.customer.ws.fooservice.documents.DocumentsSoap") 
@Stateless 
@Local(DocumentsSoap.class) 
public class DmsMockDocumentWebServiceImpl implements DocumentsSoap { 
} 

Тогда я (успешно) может заменить URL на заводе вызова с WDSL месте моего боба. Все идет нормально.

4. Проблема

Но когда я пытаюсь получить доступ фиктивный службы, я получаю эту ошибку:

14:14:51,404 SEVERE [de.customer.ws.onlineanbindung.FooServiceCallFactory] (EJB default - 7) Java Fehlermeldung: javax.xml.ws.WebServiceException: Could not find service named {http://FooService.SharePoint.API.Webservices.Documents/}Documents in wsdl http://localhost:8080/ProofCenterTestSuite/Documents/Documents?wsdl 
    at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:159) [cxf-rt-frontend-jaxws-2.4.8-patch-01.jar:2.4.8-patch-01] 
    at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:147) [cxf-rt-frontend-jaxws-2.4.8-patch-01.jar:2.4.8-patch-01] 
    at org.jboss.wsf.stack.cxf.client.ProviderImpl.createServiceDelegate(ProviderImpl.java:141) 
    at javax.xml.ws.Service.<init>(Service.java:57) [jboss-jaxws-api_2.2_spec-2.0.1.Final.jar:2.0.1.Final] 
    at de.customer.ws.fooservice.documents.Documents.<init>(Documents.java:31) [DMS-API-2.6.6.5-SNAPSHOT.jar:] 
    at de.customer.ws.onlineanbindung.FooServiceCallFactory.getDocuments(FooServiceCallFactory.java:121) [PROOFCenter-EJB.jar:] 
    at de.customer.ws.onlineanbindung.FooServiceCallFactory.createDocumentsClient(FooServiceCallFactory.java:88) [PROOFCenter-EJB.jar:] 
    at de.customer.ws.onlineanbindung.FooServiceCallFactory.getDocumentClient(FooServiceCallFactory.java:79) [PROOFCenter-EJB.jar:] 
    at de.customer.ws.onlineanbindung.FooServiceCallFactory.add(FooServiceCallFactory.java:214) [PROOFCenter-EJB.jar:] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_45] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_45] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_45] 
    at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_45] 
    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47) [jboss-as-jpa-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:200) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:188) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:76) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:42) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:32) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:181) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:72) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at de.customer.ws.onlineanbindung.FooServiceCallFactory$$$view1204.add(Unknown Source) [PROOFCenter-EJB.jar:] 
    at de.customer.ws.onlineanbindung.FakturaDocumentStorer.storeDocument(FakturaDocumentStorer.java:47) [PROOFCenter-EJB.jar:] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_45] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_45] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_45] 
    at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_45] 
    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47) [jboss-as-jpa-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:226) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:302) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:188) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:76) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:42) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:43) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:181) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final] 
    at org.jboss.as.ejb3.component.interceptors.AsyncFutureInterceptorFactory$1$1.runInvocation(AsyncFutureInterceptorFactory.java:77) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at org.jboss.as.ejb3.component.interceptors.AsyncInvocationTask.run(AsyncInvocationTask.java:73) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45] 
    at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45] 
    at org.jboss.threads.JBossThread.run(JBossThread.java:122) 

WSDL Локальное и удаленное

Мои локально генерируемый WSDL с одних и тех же интерфейсов значительно отличается от того, что предоставляется Sharepoint.

Местный

<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions name="Documents" targetNamespace="http://FooService.SharePoint.API.Webservices.Documents" xmlns:ns1="http://FooService.SharePoint.API.Webservices.Documents/" xmlns:ns2="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://FooService.SharePoint.API.Webservices.Documents" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <wsdl:import location="http://localhost:8080/TheProductTestSuite/Documents/Documents?wsdl=DocumentsSoap.wsdl" namespace="http://FooService.SharePoint.API.Webservices.Documents/"> 
    </wsdl:import> 
    <wsdl:binding name="DocumentsSoapBinding" type="ns1:DocumentsSoap"> 
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 
    <wsdl:operation name="AddLinkedFile"> 
     <soap:operation soapAction="http://FooService.SharePoint.API.Webservices.Documents/AddLinkedFile" style="document"/> 
     <wsdl:input name="AddLinkedFile"> 
     <soap:body use="literal"/> 
     </wsdl:input> 
     <wsdl:output name="AddLinkedFileResponse"> 
     <soap:body use="literal"/> 
     </wsdl:output> 
    </wsdl:operation> 
    <wsdl:operation name="UploadDocumentBySearchPath"> 
     <soap:operation soapAction="http://FooService.SharePoint.API.Webservices.Documents/UploadDocumentBySearchPath" style="document"/> 
     <wsdl:input name="UploadDocumentBySearchPath"> 
     <soap:body use="literal"/> 
     </wsdl:input> 
     <wsdl:output name="UploadDocumentBySearchPathResponse"> 
     <soap:body use="literal"/> 
     </wsdl:output> 
    </wsdl:operation> ... 

оригинальный WSDL загружен на заводе вызова выглядит следующим образом:

<wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://FooService.SharePoint.API.Webservices.Documents/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s1="http://microsoft.com/wsdl/types/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://FooService.SharePoint.API.Webservices.Documents/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 
    <wsdl:types> 
    <s:schema elementFormDefault="qualified" targetNamespace="http://FooService.SharePoint.API.Webservices.Documents/"> 
     <s:import namespace="http://microsoft.com/wsdl/types/" /> 
     <s:element name="GetDocumentInformationByURL"> 
     <s:complexType> 
      <s:sequence> 
      <s:element minOccurs="0" maxOccurs="1" name="documentURL" type="s:string" /> 
      </s:sequence> 
     </s:complexType> 
     </s:element> 
     <s:element name="GetDocumentInformationByURLResponse"> 
     <s:complexType> 
      <s:sequence> 
      <s:element minOccurs="0" maxOccurs="1" name="GetDocumentInformationByURLResult" type="tns:DocumentInfo" /> 
      </s:sequence> 
     </s:complexType> 
     </s:element> 
     <s:complexType name="DocumentInfo"> 
     <s:sequence> 
      <s:element minOccurs="0" maxOccurs="1" name="VersionLabel" type="s:string" /> 
      <s:element minOccurs="1" maxOccurs="1" name="IsConvertedFile" type="s:boolean" /> 
      <s:element minOccurs="1" maxOccurs="1" name="TotalLength" type="s:long" /> 
      <s:element minOccurs="0" maxOccurs="1" name="URL" type="s:string" /> 
      <s:element minOccurs="1" maxOccurs="1" name="UniqueID" type="s1:guid" /> 
      <s:element minOccurs="1" maxOccurs="1" name="ListItemID" type="s:int" /> 
      <s:element minOccurs="1" maxOccurs="1" name="ListID" type="s1:guid" /> 
      <s:element minOccurs="0" maxOccurs="1" name="FilePath" type="s:string" /> 
      <s:element minOccurs="0" maxOccurs="1" name="DependentFiles" type="tns:ArrayOfDependentFile" /> 
      <s:element minOccurs="0" maxOccurs="1" name="Content" type="tns:Content" /> 
      <s:element minOccurs="1" maxOccurs="1" name="IsLinked" type="s:boolean" /> 
      <s:element minOccurs="1" maxOccurs="1" name="IsArchived" type="s:boolean" /> 
      <s:element minOccurs="1" maxOccurs="1" name="CheckedOutState" type="tns:SPCheckOutStatus" /> 
     </s:sequence> 
     </s:complexType> 
.... 

Большой вопрос

Поскольку я сгенерировал API баночку DMS из WSDL Sharepoint , как это может быть, что EJB-сервис, реализующий этот API, настолько сильно отличается от оригинала, что он не будет принят в качестве замены Мент?

Я пропустил важные моменты? Или это просто проблема с поколением - означает: API-интерфейс java-клиента, несущий информацию webservice, никогда не приведет к тому, что веб-сервис EJB соответствует предыдущей спецификации?

Заранее благодарен!

ответ

0

Реализация Java EE, которую вы используете, отличается от реализации поколения WSDL от Sharepoint. Для SOAP-фреймворков это нормально, поскольку нет единого стандарта для генерации WSDL. Стандартизирован только язык WSDL. Версии тоже отличаются. Если вам нравится, вы можете поместить файл WSDL в каталог WEB-INF/wsdl вашего приложения, а затем использовать что-то вроде @WebService(wsdlLocation="yourwsdl.wsdl") в EJB.

Смежные вопросы