Como MTOM de trabalho + código de exemplo
-
26-09-2019 - |
Pergunta
Eu estou tentando fazer um simples serviço web, que faz o seguinte:
- O cliente atinge o serviço web solicita um arquivo.
- O serviço de web classe de serviço de consultas a um hashtable, que tem a chave (consulta de pesquisa) e o valor que o base64encoded valor de um arquivo (digamos, um pdf)
- Agora,eu preciso usar o MTOM para voltar a base64encoded valor armazenado na hashtable para o cliente.
É até o cliente para decodificá-lo e convertê-lo para pdf.
Então, aqui estão as minhas perguntas:
Entendo que codificar arquivos base64 para a transmissão através de web service, mas onde e como MTOM entram em cena lá?
Alguém pode me fornecer um método simples que utiliza MTOM e envia os dados de volta.Precisamos especificar algo no WSDL também?ou uma Cadeia de caracteres tipo de retorno seria suficiente?Por que/Por que não?
Obrigado
Eu tenho visto isso código.Ele usa um monte de anotações, eu só preciso de um simples código java usando o MTOM.Novo para J2EE AQUI :)
ATUALIZAÇÃO 1
Decente o suficiente explicação aqui, agora eu preciso compreendê-lo a partir do nível de implementação.Boa informação aqui, mas , para .Net
ATUALIZAÇÃO 2
Qual deve ser o tipo de retorno do método "createMTOM(int id)"??
Solução
Você parece ser uma mistura de implementação e protocolo.
A especificação para MTOM é aqui. Este página com exemplos de mensagens.
Se você estiver usando um JAX-WS ambiente, você certamente usar Annotations
para ativá-lo.Se você estiver rolando mensagens soap mão, você escrever o código Java você precisa escrever para o produzir.Essencialmente, MTOM significa que o conteúdo dos dados de mover-se para um anexo, que está separado de MIME parte da mensagem, e é referenciado através de uma xop:Include elemento com um href para a parte MIME.
O esquema tem a dizer base64Binary como o tipo de elemento, mas atributos adicionais dar dicas de como a interpretação dos bytes:xmime:contentType e xmime:expectedContentType.Na minha experiência, o JAX-B implementação de referência tem algumas limitações sobre o uso destes.Você não pode, por exemplo, obtê-lo para converter automaticamente o texto para trás e para bytes.Em um típico kit como CXF ou Glassfish, você colocar dados em um DataHandler e o kit de transforma-lo em anexo.
Outras dicas
Um bom exemplo / discussão detalhado é fornecido no IBM RedBook: Desenvolvendo aplicativos de Serviços da Web, consulte as páginas 64-74
Há um artigo útil aqui Isso descreve o MTOM e como ativá -lo com CXF. O artigo também inclui código -fonte para um exemplo de trabalho.