Acessar metodo de SO

6 respostas
A

Salve Lista,

Depois de um internamento total pra acessar conseguir acessar um SO feita em kylix atraves do JAVA (chegou a ser doloroso.. hehehe )... agora me deparo com um problema q acho q eh simples, mas meu acabou deretendo nesse meio tempo e naum saio mais daki:

consegui acessar a SO,usando uma bridge.... soh q assim, utilizando java puro, em console, deu certo... segue o codigo :

public class aspDocLWJ {


  public static void main(String[] args){
    aspDocLWJ cm = new aspDocLWJ();

    boolean retorno;
    retorno = cm.infParametros(4747, "10.46.2.113", "10.46.2.113");
    if (retorno)
    {System.out.println("Sucesso");
    }
    else
    {
     System.out.println(cm.retornaMensagemErro());
    }

public native boolean infParametros(int porta, String nomeServidor,String ipServidor ) throws Error;

static{
    System.loadLibrary("AspDocCliente53LWJ");
     }

Ateh aeh bele, fikei moh feliz e tal, dae qdo fui jogar isso pra Servlet ele fika me acusando esse erro :

org.apache.jasper.JasperException: infParametros

eis o codigo do servlet

public class AspdocLW extends HttpServlet {


	public void AutenticaUser(PageContext pageContext) {
		
	  HttpServletResponse response = (HttpServletResponse) pageContext.getResponse();
	  HttpSession session = pageContext.getSession();
		
	  	
		
	try{
				
		
		AspdocLW ad = new AspdocLW();	
			
		boolean retorno;
					
		retorno = ad.infParametros (4747, "10.46.2.113", "10.46.2.113");
		

		if (retorno) {
			response.getWriter().println("Server encontrado!!");
		} else {
			response.getWriter().println(ad.retornaMensagemErro());
		}
	
	}catch (Exception e){				
		System.out.println(e.toString());
		
	}
				
	}
	

	
	// Chama metodos nativos da Bridge
	public native boolean infParametros(int porta, String nomeServidor,String ipServidor ) throws Error;
	public native String retornaMensagemErro() throws Error;	

	// Carrega Biblioteca
	static{
	System.loadLibrary("AspDocCliente53LWJ");
	 }


}

Alguem pode me ajudar please???

acho q mexer com JNI tah me destruindo hehehe..

desde jah agradeço pessoal

6 Respostas

louds

usar jni em aplicações web direto é 1 problemão com tomcat
voce tem que tomar cuidado para não carregar a mesma lib 2x
isso vc só consegue deixando as classes nos diretorios compartilhados do tomcat (/shared/classes ou /shared/lib)

cv1

Lembrando que vc não poderia fazer isso - uma vez que a especificação da J2EE não te permite acessar componentes externos ao application server :wink:

danieldestro

E mais…

se sua classe extend servlet, vc não está usando o método doXXX( ) para executar a ação na chamada ao Servlet.

E, se não me engano, o servlet precisa de uma Construtor default.

Daniel_Quirino_Olive

“danieldestro”:
E mais…

se sua classe extend servlet, vc não está usando o método doXXX( ) para executar a ação na chamada ao Servlet.

E, se não me engano, o servlet precisa de uma Construtor default.

Então você se enganou. Servlet não tem construtor, muito menos um construtor default, Destro. O servlet é iniciado pelo container através do método HttpServlet.init(ServletConfig config).

danieldestro

:oops: Eu vou parar de dar essas adições.

Sei que um servlet não deve ter um método construtor.
Mas a classe pai (ou antecessores) tem uma. Got that?

Daniel_Quirino_Olive

“danieldestro”:
:oops: Eu vou parar de dar essas adições.

Sei que um servlet não deve ter um método construtor.
Mas a classe pai (ou antecessores) tem uma. Got that?


:slight_smile: Ahh ta.

Criado 19 de novembro de 2003
Ultima resposta 20 de nov. de 2003
Respostas 6
Participantes 5