Boa noite,
Tenho um arquivo JAR, que contem vários métodos que precisam ser utilizados dentro dos Scripts do workflow.
Alguém já fez a importação do arquivo JAR para o projeto do fluig studio ?
EDIT 1
Rafael,
Pelo que eu entendi ao criar um modulo no Jboss qualquer aplicação pode ter acesso as bibliotecas.
Criei o modulo com.empresa.api.main
dentro do diretório main criei o arquivo module.xml e adicionei o arquivo API.jar dentro do mesmo diretório.
Código do arquivo module.xml
<module xmlns="urn:jboss:module:1.0" name="com.empresa.api">
<resources>
<resource-root path="API.jar" />
</resources>
</module>
Dentro da API.jar criei a classe br.com.empresa.controller.cliente.java
Dentro da classe Cliente.java
criei o metodo com o seguinte codigo:
public String testeCliente(){ return "metodo funcionou";}
Depois disso criei um arquivo de Script Evento Workflow beforeTaskSave e implementei o seguinte codigo:
var objeto = new API.br.com.empresa.controller.ClienteHttp();
var retorno = objeto.testeClienteHTTP();
throw teste;
Quando executo o processo ele me retorna o seguinte erro:
Erro ao salvar/completar a tarefa: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "API" is not defined. (#2) in at line number 2
Tambem testei dessa maneira:
function beforeTaskSave(colleagueId,nextSequenceId,userList){
var objeto = new Packages.API.br.com.empresa.controller.ClienteHttp();
var retorno = objeto.testeClienteHTTP();
throw teste;
}
e mudou o retorno do erro:
Erro ao salvar/completar a tarefa: sun.org.mozilla.javascript.internal.EcmaError: TypeError: [JavaPackage API.br.com.empresa.controller.ClienteHttp] is not a function, it is object. (#2) in at line number 2
e desta maneira:
function beforeTaskSave(colleagueId,nextSequenceId,userList){
var objeto = new com.empresa.api.API.br.com.empresa.controller.ClienteHttp();
var retorno = objeto.testeClienteHTTP();
throw teste;
}
O erro continuou o mesmo:
Erro ao salvar/completar a tarefa: sun.org.mozilla.javascript.internal.EcmaError: TypeError: [JavaPackage com.empresa.api.API.br.com.empresa.controller.ClienteHttp] is not a function, it is object. (#2) in at line number 2
Será que esta faltando algo para o projeto do fluig reconhecer o arquivo JAR ?
Desde já, obrigado.
EDIT 2
Então Rafael, você quis dizer que a estrutura de pastas criada na API.jar, tem que ser igual a estrutura de pastas criada no modulo do Jboss correto ?
Fiz as mudanças seguindo a logica acima:
Estrutura de pastas do Jboss: C:\fluig\jboss\modules\com\empresa\api\main
Estrutura de pastas da API.jar: API\src\com\empresa\api
o arquivo xml mantive da mesma maneira: <module xmlns="urn:jboss:module:1.0" name="com.empresa.api"> <resources> <resource-root path="API.jar" /> </resources> </module>
beforeTaskSave: function beforeTaskSave(colleagueId,nextSequenceId,userList){
var objeto = new com.empresa.api.ClienteHttp();
var retorno = objeto.testeClienteHTTP();
throw teste;
}
mas o erro persiste: Erro ao salvar/completar a tarefa: sun.org.mozilla.javascript.internal.EcmaError: TypeError: [JavaPackage com.empresa.api.ClienteHttp] is not a function, it is object. (#2) in at line number 2
Achei esse tutorial: https://developer.jboss.org/wiki/CriandoUmModuloPersonalizadoParaASuaAplicacaoNoJBoss7
E observei que ele cria um arquivo chamado jboss-deployment-structure.xml no WEB-INF da aplicação. não seria necessário setar o modulo C:\fluig\jboss\modules\com\empresa\api\main
nesse arquivo de configuração no WEB-INF do projeto do fluig ?
EDIT 3
Alguém conseguiu ?