Pergunta

Como eu iria sobre como escrever algum código para permitir o acesso a uma classe Java no meu webapp a partir da linha de comando.

por exemplo. Eu tenho uma classe java com interface de linha de comando, que pode executa código no contexto do webapp, com acesso ao DB etc. Quero log na máquina que hospeda meu aplicativo guerreou no tomcat e ser capaz de interagir com ele

Onde eu deveria começar a procurar?

Graças

Foi útil?

Solução

Você só quer executar arquivos de classe que só assim acontecer a ser empacotado no WAR, ou você quer interagir ot com a instância guerra real, funcionando? Se for o primeiro, então a guerra é apenas um arquivo Jar normal e você pode executar classes em que, assim como qualquer outro outro arquivo Jar.

Se você quiser interagir com a WAR em execução, então você pode querer olhar para JMX.

Todos os JDKs atuais (pelo menos 1.5+) vêm com JMX "de graça". É fácil criar pequenos classes de interface para serem usados ??como comandos para interagir com o seu WAR.

Em seguida, você precisa criar um programa de linha de comando que se conecta ao WAR via JMX, ou você pode usar uma ferramenta como o JConsole (que vem com o JDK, mas é um GUI) para interagir com o seu exemplo. Existem outros clientes JMX lá fora também.

Se nada disso é atraente, há sempre serviços web.

Outras dicas

Uma sugestão: Sua classe de interface de linha de comando deve aceitar um InputStream como de entrada e fornecer uma OutputStream (ele não pode hardcode saída para System.out e entrada para System.in) que de saída serão gravados. Então você terá que escrever uma classe de servidor que recebe as conexões em uma determinada porta. Quando é estabelecida uma ligação ao servidor levaria o InputStream da conexão e dá-lo para a classe de linha de comando que proporcionaria o OutputStream que os dados gravados serão passadas para o cliente que fez a ligação.

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