мыльная ошибка при подключении к MS Exchange - PullRequest
1 голос
/ 05 марта 2012

Я пытаюсь подключиться к серверу MS Exchange через мыло, но я получаю сообщение об ошибке ниже.Это работает с другого компьютера с более или менее такой же средой (незначительные различия версий в Eclipse и т. Д.), И мы используем разные учетные записи AD на компьютерах.Кто-нибудь видел это раньше и может дать подсказку, что может быть не так?

Часть кода, необходимая для соединения обмена:

@WebServiceClient(name = "ExchangeWebService", targetNamespace = "http://schemas.microsoft.com/exchange/services/2006/messages", wsdlLocation = "mysourceadress/exchange.wsdl")
public class ExchangeWebService
    extends Service
{

    private final static URL EXCHANGEWEBSERVICE_WSDL_LOCATION;
    private final static Logger logger = Logger.getLogger(se.ports.webservices.generatedWSDL.ExchangeWebService.class.getName());

    static {
        URL url = null;
        try {   
            URL baseUrl = se.ports.webservices.generatedWSDL.ExchangeWebService.class.getResource(".");
            url = new URL(baseUrl, "../exchange.wsdl");
        } catch (MalformedURLException e) {
            logger.warning("Failed to create URL for the wsdl Location:'"+ url +"', retrying as a local file");
            logger.warning(e.getMessage());
        }
        EXCHANGEWEBSERVICE_WSDL_LOCATION = url;
    }

    public ExchangeWebService(URL wsdlLocation, QName serviceName) {
        super(wsdlLocation, serviceName);
    }


javax.xml.ws.soap.SOAPFaultException: Can't find input stream in message
           at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:146)
           at $Proxy48.findItem(Unknown Source)
           at se.ports.webservices.io.ItemTypeDAO.getFolderItems(ItemTypeDAO.java:44)
           at se.ports.webservices.access.ExchangeFacade.getAllEmails(ExchangeFacade.java:38)
           at se.ports.webservices.utils.ExchangeFacadeTest.getAllEmails(ExchangeFacadeTest.java:25)
           at se.ports.webservices.ExchangeTests.test_single_exchangefacade_try_exchange_connection(ExchangeTests.java:34)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
           at java.lang.reflect.Method.invoke(Unknown Source)
           at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
           at org.testng.internal.Invoker.invokeMethod(Invoker.java:699)
           at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:891)
           at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1215)
           at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
           at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
           at org.testng.TestRunner.privateRun(TestRunner.java:758)
           at org.testng.TestRunner.run(TestRunner.java:613)
           at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
           at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
           at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
           at org.testng.SuiteRunner.run(SuiteRunner.java:240)
           at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
           at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:87)
           at org.testng.TestNG.runSuitesSequentially(TestNG.java:1170)
           at org.testng.TestNG.runSuitesLocally(TestNG.java:1095)
           at org.testng.TestNG.run(TestNG.java:1007)
           at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:109)
           at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:202)
           at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:173)
Caused by: java.lang.RuntimeException: Can't find input stream in message
           at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:116)
           at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:60)
           at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
           at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:755)
           at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2330)
           at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2192)
           at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:2036)
           at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
           at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:696)
           at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
           at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
           at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
           at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
           at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
           at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
           at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
           ... 29 more

ОБНОВЛЕНИЕ:

Итак, после большого количества проб и ошибок, я понял, что проблема в том, что один из компьютеров работает с jdk7, это дает сбой, в то время как другие работают с jdk6, и это прекрасно работает (яv также добавил JDK7 на рабочих компьютерах, а затем они также не работают).Я попытался решить эту проблему, перезапустив wsimport из jdk7, но это все равно дает ту же ошибку для jdk7 и полностью дает сбой для компьютеров jdk6.У кого-нибудь есть идея, как решить эту проблему?


Итак, после большого количества проб и ошибок, я пришел к выводу, что проблема в том, что один из компьютеров работает с jdk7, это не помогает, в то время какдругие работают с jdk6, и это прекрасно работает (я также добавил jdk7 на рабочие компьютеры, а затем они тоже перестали работать).Я попытался решить эту проблему, перезапустив wsimport из jdk7, но это все равно дает ту же ошибку для jdk7 и полностью дает сбой для компьютеров jdk6.У кого-нибудь есть идея, как это решить?

...