Как получить доступ к частной эдс EntityManagerFactory @PersistenceUnit в soaphandler - PullRequest
0 голосов
/ 13 мая 2011

Я реализовал SOAPHandler, теперь в моем методе handleMessage я хочу сохранить SoapHeader в базе данных Oracle.

Я получил soapHeader как следующий

@ Override public boolean handleMessage (контекст SOAPMessageContext) {

    Boolean outboundProperty = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);

    if (outboundProperty.booleanValue()) {

        System.out.println("\nOutbound message:");

    } else {

        System.out.println("\nInbound message:");

        try {
            SOAPMessage     soapMessage     =   context.getMessage();
            SOAPPart        soapPart        =   soapMessage.getSOAPPart();
            SOAPEnvelope    soapEnvelope    =   soapPart.getEnvelope();
            SOAPHeader      soapHeader      =   soapEnvelope.getHeader();

            SOAPBody        soapBody        =   soapEnvelope.getBody();

}

Чтобы сохранить soapheader в БД с использованием JPA, я требовал фабрики entitymanager в классе soaphandler. я пытаюсь с @persistenceunit, но выдает ошибку, что мой класс мыла не найден в веб-приложении.

С уважением, Имран

Ответы [ 2 ]

1 голос
/ 20 августа 2014

Вы можете сохранить XML-сообщение в контексте, а затем загрузить его и сохранить в БД в WebService:

Обработчик:

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
context.getMessage().writeTo(outputStream);
context.put("XML_MESSAGE_PARAM", outputStream.toString());
context.setScope("XML_MESSAGE_PARAM", Scope.APPLICATION);

WebService:

@Resource
WebServiceContext webContext;
String xmlMessage = (String) webContext.getMessageContext().get("XML_MESSAGE_PARAM");
0 голосов
/ 20 июля 2011

Не очень хорошая идея делать манипуляции с базой данных в обработчике, я просто анализирую soapheader и позволяю ему перейти к веб-сервису и выполняю в нем задачи базы данных.

С уважением, Имран

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