2015-08-04 6 views
1

У меня есть следующие настройки в демонстрационном DocuSign Connect, чтобы использовать SOAP APIDocuSign Connect Настройки

URL to publish to https://demo.docusign.net 
Name DocusignConnect 
Use Soap Interface (check box checked) 

Есть более конфигурации требуется. Я не могу подключиться к службе API с использованием мыла клиента вызывает

DocuSign код выглядит следующим образом

public APIServiceSoap getAPI() { 

     DocusignAPICredentials apiCreds = new DocusignAPICredentials(); 
     apiCreds.setAccountId(accountId); 
     apiCreds.setUserId(username); 
     apiCreds.setIntegratorsKey(integratorKey); 
     apiCreds.setPassword(password); 
     apiCreds.setUserEmail(email); 
     apiCreds.setDocusignWebserviceEndpoint(credentialURL); 

     DocusignWebserviceFactory wsFactory = new DocusignWebserviceFactory(); 
     wsFactory.setEmail(apiCreds.getUserEmail()); 
     wsFactory.setIntegratorsId(apiCreds.getIntegratorsKey()); 
     wsFactory.setUserId(apiCreds.getUserId()); 

     return wsFactory.setupClient(apiCreds.getDocusignWebserviceEndpoint()).authorizeAPI(apiCreds); 
    } 

Файл DocuSignWebServiceFactory и DocuSignApiCredentials взяты из примера, образца Github из Connect, расположенного по адресу https://github.com/docusign/DocuSign-SOAP-SDK Simple тест, чтобы проверить код

@Test 
    public void testLogin() { 

     APIServiceSoap serviceSoap = utils.getAPI(); 

     serviceSoap.voidEnvelope("dhfafgajf", "No Reason"); 
    } 

ошибка я получаю это

org.apache.cxf.interceptor.Fault: Could not write attachments. 
    at org.apache.cxf.interceptor.AttachmentOutInterceptor.handleMessage(AttachmentOutInterceptor.java:74) 
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) 
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:502) 
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:411) 
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:314) 
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:267) 
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) 
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:137) 
    at com.sun.proxy.$Proxy109.voidEnvelope(Unknown Source) 
    at com.cargill.crm.docservices.docusign.workflow.LoginTest.testLogin(LoginTest.java:25) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.springframework.test.context.junit4.SpringTestMethod.invoke(SpringTestMethod.java:198) 
    at org.springframework.test.context.junit4.SpringMethodRoadie.runTestMethod(SpringMethodRoadie.java:274) 
    at org.springframework.test.context.junit4.SpringMethodRoadie$2.run(SpringMethodRoadie.java:207) 
    at org.springframework.test.context.junit4.SpringMethodRoadie.runBeforesThenTestThenAfters(SpringMethodRoadie.java:254) 
    at org.springframework.test.context.junit4.SpringMethodRoadie.runWithRepetitions(SpringMethodRoadie.java:234) 
    at org.springframework.test.context.junit4.SpringMethodRoadie.runTest(SpringMethodRoadie.java:204) 
    at org.springframework.test.context.junit4.SpringMethodRoadie.run(SpringMethodRoadie.java:146) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:151) 
    at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:61) 
    at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:54) 
    at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:33) 
    at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:45) 
    at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:52) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 
Caused by: java.net.UnknownHostException: demo.docusign.net 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:579) 
    at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:618) 
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) 
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:275) 
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:371) 
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:200) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:951) 
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) 
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1091) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) 
    at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.setupWrappedStream(URLConnectionHTTPConduit.java:174) 
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1296) 
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1252) 
    at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.onFirstWrite(URLConnectionHTTPConduit.java:201) 
    at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:47) 
    at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69) 
    at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:60) 
    at org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:77) 
    at org.apache.cxf.attachment.AttachmentSerializer.writeProlog(AttachmentSerializer.java:172) 
    at org.apache.cxf.interceptor.AttachmentOutInterceptor.handleMessage(AttachmentOutInterceptor.java:72) 
    ... 32 more 
+0

Пожалуйста, не забудьте перечислить все полезные ответы и «проверить» ответ, который наилучшим образом решает вашу проблему. Благодарю. –

ответ

1

DocuSign connect звонки приложение. Этот шаблон часто называют «web hook»

Вы должны ввести URL-адрес своего «получающего приложения» на странице конфигурации Connect. Ваш URL должен быть доступен из общедоступного Интернета, так как платформа DocuSign.net будет вызывать ваше приложение.

Re: «Я не могу подключиться к службе API с помощью клиента Soap называет»

Вот так оно и должно быть. Вы не подключаетесь к службе DocuSign Connect, она подключается к вашему приложению.

Надеюсь, это поможет. При разработке приложения задайте дополнительные вопросы.

Добавлено

DocuSign имеет два различных API, SOAP. Первый - это SOAP API для отправки подписанных документов. Этот API также включает множество других сервисов. Его WSDL размещен на demo.docusign.net/api/3.0/api.asmx

Это стандартная служба SOAP. Приложение вызывает API.

Другие API: DocuSign Connect. Это не API, который вы вызываете. Это «API веб-крюка». Ваше программное обеспечение делает не для вызовов этого типа API. Вместо этого вы регистрируете URL-адрес с помощью службы Connect и , который он вам звонит.

Когда вы создаете конфигурацию DocuSign Connect и регистрируете свой URL-адрес, вы также можете выбрать, чтобы DocuSign Connect сделал SOAP-вызов вашим слушателем или более простым вызовом HTTPS.

Если вы выберете SOAP, ваше приложение будет использоваться как служба SOAP, и WSDL будет опубликован вами . (На самом деле вам не нужно создавать WSDL для вашего слушателя, но вы можете, если хотите.)

Re: Я за прокси

Это является проблемой. Чтобы служба DocuSign Connect вызывала ваше приложение-слушатель, ваше приложение должно быть видимым в общедоступном Интернете. Если ваше программное обеспечение находится за шлюзом/брандмауэром/прокси-сервером, вам нужно открыть «отверстие», чтобы DocuSign Connect смог достичь вашего приложения-слушателя.

+0

Я не использую функцию публикации, я пытаюсь получить доступ к API SOAP. Этот вопрос по-прежнему применяется в этом случае. – avenirit12

+0

Вы пытаетесь отправить конверт для подписания или хотите получать обновления о конвертах, которые вы отправили? Соединение для последнего, и это то, на что ссылается мой ответ. –

+0

Я хочу последнее, но я создаю службу отдыха, которая будет называть услуги Connect Soap, конечные точки отдыха будут использоваться командой пользовательского интерфейса. У нас есть определенные условия рабочего процесса, которые Docusign не поддерживает из коробки, поэтому для реализации логики мне нужно использовать Connect для опроса статуса конверта. – avenirit12

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