Pergunta

Eu estava tentando adicionar o esquema XML para um projeto EJB existente. JAXB é usado para ligar o XML-Schema a uma classe Java. Como estamos indo para usar o motor de busca para rastreamento através de DTO quando EJB está em sessão.

Eu não poderia encontrar qualquer abordagem direta como para mapear arquivo de classe entidade para XML-Schema.

A única maneira que poderia alcançar até agora é criar o Serviços Web, gerar o WSDL que gera xml-schema (XSD) e, em seguida, analisar o arquivo XSD através JAXB (comando xjc) para criar arquivos de classe java. Agora, usando arquivo de mapeamento-binding.xml podemos mapear XML e arquivo de classe Java.

Mas agora novamente a questão é como mapear isso para a classe entidade.

Isto é o que queremos alcançar:

  • Data Object XML com o XML Schema, (Isso já está presente na especificação JAXB).
  • Entidade de feijão, em seguida, estende ou tem uma interface para este objeto JAXB.
  • Todas as funções Persistência são geridos pela Entidade de feijão ...
  • A Entidade de feijão, então, conter o XML de triagem e unmarshalling características encontradas em JAXB ..
  • Um valor dos objetos pode ser recuperada na forma binária ou XML do objeto Entity Bean.
  • A JSP poderia facilmente extrair o XML Schema e dados XML a partir o objeto de valor e realizar operações sobre ele, como transformações XSL.

Meu argumento é que os Entity Beans têm nenhuma maneira padrão para interface com JAXB objetos.

Castor pode ser a solução, mas, novamente, temos de implementar serviços Web ou utilizando castor do JDO.

Eu encontrei XStream para ser muito útil, pois utiliza uma classe de conversor no qual você pode chamar os objetos de classe de bean de entidade e gerar um arquivo xml. Mas eu não estava preferindo usar uma outra classe, mas incorporar as funções na classe de bean existente.

Você pode me ajudar nesse sentido?


Vou dizer-lhe o que eu estou realmente tentando alcançar. Estou criando um motor de busca que será evocado durante o EJB em sessão e usará rastreador através do DTO e obter o instantâneo no formato XML. Pesquisa será em critérios diferentes.

Lucene é uma das ferramentas do motor de busca, mas, em seguida, ele usa suas próprias propriedades e arquivos (atuará mais como autônomo)

Já tenho DTO do que são usados ??por webservices para se comunicar entre PHP e aplicação Java (EJB-layer). Eu queria voltar a utilizar os DTO em jaxb como um rastreador para obter a saída de tabelas em XML que eu não sou capaz de fazer como JAXB usa suas próprias classes geradas através de xml-schema. Como você disse que eu ainda não encontrou uma maneira de JAXB instruir a classes de feijão.

Foi útil?

Solução

acoplamento firmemente seu modelo de dados (beans de entidade) para a interface XML pode não ser a melhor idéia do mundo; que o impede de mudar um sem alterar o outro.

Eu não estou 100% certo que eu entendo o que você está tentando fazer, mas eu acho que há uma maneira de instruir JAXB para estender as classes, em vez de criar novos. Você poderia criar seus Entity Beans como normal, e ter o seu feijão-generated JAXB estender aqueles com a informação extra.

eu posso dizer que a obtenção de entidade feijão casos de algum lugar outros do que a sua camada de persistência (como deserializing-los de XML) vai ser um enorme problema para você.

Além disso, note que o uso de XML para comunicação entre aplicações Java (como entre um JSP / Servlet e camada EJB) é uma má idéia; o empacotamento e verbosidade acrescentado das XML, você compra muito pouco; serialização de objetos por meio de RMI (que é o EJB vai fazer por você) seria muito mais fácil de implementar, testar e manter.

Outras dicas

EclipseLink JAXB (MOXY) pode ser usado para mapear entidades JPA para XML.

Para obter mais informações, consulte:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top