Неожиданный EOF в прологе - PullRequest
4 голосов
/ 28 июня 2011

На стороне клиента я создал 3 вложения следующим образом:

public String sendMessage(MMSMessage mmsMessage, String formatCDR, FlowSessionData flowSessionData)
        throws IOException, ServiceException, PolicyException {

    SendMessage sendMessage = sendMessageService.getSendMessage();
    int index = 1;
    List<Attachment> atts = new ArrayList<Attachment>();
    BufferedImage image =  ImageIO.read(new URL(mmsMessage.getImgPath()));
    atts.add(createAttachmentPart(mmsMessage.getImgMimeType(), image, index));
    if (mmsMessage.getPrerollText() != null) {
        atts.add(createAttachmentPart("text/plain", mmsMessage.getPrerollText(), index++));
    }
    if (mmsMessage.getPostrollText() != null) {
        atts.add(createAttachmentPart("text/plain", mmsMessage.getPostrollText(), index++));
    }
    setServiceParams((BindingProvider) sendMessage, atts, configService.getSendMessageEndpointAddress());
    String value = null;
    validateURI(configService.getParlayxCallbackEndpointService() + "/" + NOTOFICATION_MMS_INTERFACE);
    SimpleReference correlator = new SimpleReference();
    correlator.setCorrelator(formatCDR);
    correlator.setInterfaceName(NOTOFICATION_MMS_INTERFACE);
    correlator.setEndpoint(configService.getParlayxCallbackEndpointService() + "/" + NOTOFICATION_MMS_INTERFACE);
    String toNumber = mmsMessage.getSmsServiceActivationNumber().get(0);
    if (!toNumber.startsWith(MSGConstants.PHONE_URI_PREFIX)) {
        if (!toNumber.startsWith("+")) {
            toNumber = "+" + toNumber;
        }
        toNumber = MSGConstants.PHONE_URI_PREFIX + toNumber;
    }
    validateURI(toNumber);
    List<String> addr = new ArrayList<String>();
    addr.add(toNumber);
    value = sendMessage.sendMessage(addr, mmsMessage.getSenderAddress(), mmsMessage.getSubject(), null, null,
            correlator);
    LOGGER.info(value);
    return value;
}

private Attachment createAttachmentPart(String mimeType, Object data, int index) {
        return new AttachmentImpl(String.valueOf(index), new DataHandler(data, mimeType));
    }

private void setServiceParams(BindingProvider serviceInf, Collection<Attachment> attachments, String endPoint) {
        Map<String, Object> requestContext = serviceInf.getRequestContext();
        requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endPoint);
        requestContext.put(BindingProvider.USERNAME_PROPERTY, configService.getParlayxEndPointUserName());
        requestContext.put(BindingProvider.PASSWORD_PROPERTY, configService.getParlayxEndPointPassword());
        final Client client = ClientProxy.getClient(serviceInf);
        final HTTPConduit http = (HTTPConduit) client.getConduit();
        final HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
        httpClientPolicy.setReceiveTimeout(configService.getParlayxEndPointTimeOut());
        httpClientPolicy.setAllowChunking(false);
        httpClientPolicy.setConnectionTimeout(configService.getParlayxEndPointTimeOut());
        http.setClient(httpClientPolicy);
        if (attachments != null && !attachments.isEmpty()) {
            requestContext.put(org.apache.cxf.message.Message.ATTACHMENTS, attachments);
        }
    }

И я получаю исключение ниже, что это вызывает и как я могу это исправить?

ВНИМАНИЕ: Перехватчик для {http://www.csapi.org/wsdl/parlayx/multimedia_messaging/send/v2_4/service}SendMessageService#{http://www.csapi.org/wsdl/parlayx/multimedia_messaging/send/v2_4/interface}sendMessage выдал исключение, разматывая сейчас org.apache.cxf.binding.soap.SoapFault: Ошибка чтения XMLStreamReader.в org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage (ReadHeadersInterceptor.java:222) в org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage (ReadHeadersgacheoror60).cxf.phase.PhaseInterceptorChain.doIntercept (PhaseInterceptorChain.java:255) в org.apache.cxf.endpoint.ClientImpl.onMessage (ClientImpl.java:755) в org.apache.cxf.tranceternal(HTTPConduit.java:2335) по адресу org.apache.cxf.transport.http.HTTPConduit $ WrappedOutputStream.handleResponse (HTTPConduit.java:2193) по адресу org.apache.cxf.transport.http.HTTPConduit $ HTTPX: 2037) в org.apache.cxf.transport.AbstractConduit.close (AbstractConduit.java:56) в org.apache.cxf.transport.http.HTTPConduit.close (HTTPConduit.java:697) в org.apache.cxf.interceptor.MessageSenderInterceptor $ MessageSenderEndingInterceptor.handleMessage (MessageSenderInterceptor.java:62) в org.apache.cxf.phase.PhaseInterceptorChain.doIntercept (PhaseInterceptorChain.java:255) по адресу org.apache.cxf.endpoint.ClientImpl.invoke (ClientImpl.java:516) по адресу org.apache.cxf.endpoint.ClientImpl.invoj: at Client (клиент).apache.cxf.endpoint.ClientImpl.invoke (ClientImpl.java:265) в org.apache.cxf.frontend.ClientProxy.invokeSync (ClientProxy.java:73) в org.apache.cxf.jaxws.JaxWsClientProxy.in.java: 124) по адресу $ Proxy92.sendMessage (неизвестный источник) по адресу com.amobee.common.sms.ParlayxMessagingService.sendMessage (ParlayxMessagingService.java:105) по адресу com.amobee.nc.protocol.msg.MMSResponseBuilder.Mildage (MMS).Java: 96) на com.amobee.nc.protocol.msg.BaseMSGResponseWriter.getResponse (BaseMSGResponseWriter.java:59) на com.amobee.nc.protocol.AbstractResponseWriter.write (AbstractResponseWriter.java:75) на com.am.servlets.AbstractBaseServlet.runCommand (AbstractBaseServlet.java:124) в com.amobee.frontend.servlets.AbstractBaseServlet.doGet (AbstractBaseServlet.java:64) в javax.servlet.http.HttpServlet.service (HttpServlet.java:575) в javax.servlet.http.HttpServlet.service (HttpServlet.java:668) в org.mortbay.jetty.servlet.ServleShler.java: 511) в org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:390) в org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) в org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:182) в org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:765) в org.mortbay.jetty.webapp.WebAppContext.handle (WebAppConte18.j)в org.mortbay.jetty.handler.HandlerCollection.handle (HandlerCollection.java:114) в org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:152) в org.mortbay.jetty.Server.handle (сервер).java: 326) по адресу org.mortbay.jetty.HttpConnection.handleRequest (HttpConnection.java:542) по адресу org.mortbay.jetty.HttpConnection $ RequestHandler.headerComplete (HttpConnection.java:923) по адресу org.mortbay.jp.parseNext (HttpParser.java:547) в org.mortbay.jetty.HttpParser.parseAvailable (HttpParser.java:212) в org.mortbay.jetty.HttpConnection.handle (HttpConnection.java:404ay.bio.bort)..SocketConnector $ Connection.run (SocketConnector.java:228) в org.mortbay.thread.QueuedThreadPool $ PoolThread.run (QueuedThreadPool.java:582) Вызывается: com.ctc.wstx.exc.WstxEOFException:Неожиданный EOF в прологе в [row, col {unknown-source}]: [1,0] в com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF (StreamScanner.java:682) в com.ctc.wstx.sr.BasicStreamReader.handleEOF (BasicStreamReader.java:2090) в com.ctc.wstx.sr.BasicStreamReader.nextFromProlog (BasicStreamReader.java:1996) в com.ctc.wstx.sr.BasicStreamReader.next (BasicStreamReader.java:1100) в com.ctc.wstx.sr.BasicStreamReader.nextTag (BasicStreamReader.java:1123) в org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage (ReadHeadersInterceptor.java:122) ... еще 40 *

1010 * Спасибо, Даниэла

1 Ответ

0 голосов
/ 25 октября 2016

Это исключение означает, что в сообщении XML есть символ конца файла, вы должны использовать тип Base64bit, чтобы использовать вложения в веб-службах, чтобы избежать такой ошибки, как эта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...