Pergunta

Não estou muito familiarizado com o Tomcat, mas minha equipe herdou um projeto complexo que gira em torno de um servlet Java hospedado no Tomcat em vários servidores.O software de gerenciamento de configuração customizado é usado para gravar o server.xml, e vários recursos (conjuntos de conexões, beans, variáveis ​​de servidor, etc.) gravados no server.xml configuram o servlet.Está tudo bem e bom.

No entanto, os nomes de alguns dos recursos não são conhecidos antecipadamente.Por exemplo, o Servlet pode precisar de acesso a qualquer número de "Anonimizadores" configurados pelo operador.Cada anonimizador possui um nome exclusivo associado a ele.Criamos e configuramos cada anonimizador usando java beans semelhante ao seguinte:

<Resource
  name="bean/Anonymizer_toon"
  type="com.company.tomcatutil.AnonymizerBean"
  factory="org.apache.naming.factory.BeanFactory"
  className="teAnonymizer"
  databaseId="50"
/>
<Resource
  name="bean/Anonymizer_default"
  type="com.company.tomcatutil.AnonymizerBean"
  factory="org.apache.naming.factory.BeanFactory"
  className="teAnonymizer"
  databaseId="54"
/>

No entanto, isso parece exigir que tenhamos entradas explícitas no arquivo context.xml do Servlet para cada nome de recurso possível com antecedência.Gostaria de substituir as entradas context.xml explícitas por curingas ou saber se existe uma solução melhor para esse tipo de problema.

Atualmente:

  <ResourceLink name="bean/Anonymizer_default"
                global="bean/Anonymizer_default"
                type="com.company.tomcatutil.AnonymizerBean"/>

  <ResourceLink name="bean/Anonymizer_toon"
                global="bean/Anonymizer_toon"
                type="com.company.tomcatutil.AnonymizerBean"/>

Substituído por algo como:

  <ResourceLink name="bean/Anonymizer_*"
                global="bean/Anonymizer_*"
                type="com.company.tomcatutil.AnonymizerBean"/>

No entanto, não consegui descobrir se isso é possível ou qual seria a sintaxe correta.Alguém pode fazer alguma sugestão sobre melhores maneiras de lidar com isso?

Foi útil?

Solução

Não descobri isso, mas pode ser mais fácil ter algo como um AnonymizerService como um recurso que revela todos os diferentes AnonymizerBeans necessários.Dessa forma, você não terá problemas com curingas, precisará publicar apenas um recurso no aplicativo da web e estará de volta ao caminho bem definido e bem compreendido.

Espero que ajude cerca de um mês após a pergunta inicial ...

Outras dicas

Não sei se é isso que você precisa, mas talvez você queira investigar a criação de sua própria fábrica de recursos personalizada para o Tomcat.Aqui está a documentação geral para todos os recursos via Tomcat: Recursos do Tomcat

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