Ir para o conteúdo

 Voltar a PW3270 Desen...
Tela cheia

Integração com JAVA - Servlet

17 de Junho de 2010, 17:54 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 196 vezes

Estou desenvolvendo uma integração que deve obter e inserir alguns dados em terminais, em Java, criando um Servlet p/ ser acessado remotamente.

 

Gostaria de saber da possibilidade de utilizar as bibliotecas do PW3270.

 

Obrigado.

Autor: Tiago Santos


1414 comentários

  • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
    18 de Junho de 2010, 6:37

     

    Olá,

    É possível e poderia ser feito importando o pacote .jni do pw3270 e instanciando a classe terminal; só vejo um problema: Como a biblioteca (ainda) não suporta mais de uma sessão simultânea seria preciso um bom controle via mutex para garantir que dois usuários não acessem o terminal ao mesmo tempo.

    • 05565ec6ac2769f3ef902e5d0caa9ab4?only path=false&size=50&d=404Tiago Santos(usuário não autenticado)
      18 de Junho de 2010, 14:34

       

      Realmente, fiz a implementação do servlet e ao fazer mais de uma requisição ao mesmo tempo encontro problemas.

      Existe a previsão de implementação do sistema de sessões simultâneas?

      Como eu poderia fazer o controle das sessões via mutex?

       

      Obrigado

      • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
        22 de Junho de 2010, 17:54

         

        Olá,

        Desculpe a demora mas tive que pesquisar um pouco sobre java. (-;

        Ainda não tenho previsão de quando a parte de sessões simultâneas vai estar funcional já que envolve uma mudança bem profunda na lib3270.

        Eu faria o controle de acesso ao objeto usando um semáforo mutex para garantir que só uma thread teria acesso à sessão do terminal de cada vez, mas, andei pesquisando e o java parece ter um atributo "sincronized" justamente para garantir que acessos a um determinado método sejam exclusivos.

        • 05565ec6ac2769f3ef902e5d0caa9ab4?only path=false&size=50&d=404Tiago Santos(usuário não autenticado)
          28 de Junho de 2010, 8:30

           

          Perry,

           

          Obrigado pela dica.

          Fiz esta implementação baseado no utilizando 'sincronized', funcionou perfeitamente, resta saber se a velocidade de acesso será suficiente p/ suprir as requisições por aqui.

          • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
            28 de Junho de 2010, 10:56

             

            Olá,

            Legal! Aos poucos vou mudando a lib para permitir várias conexões simultâneas.

            • 7a7447d1283cd0f69993a2a0b80c87d8?only path=false&size=50&d=404Paulo Fernando Rodriguez(usuário não autenticado)
              27 de Julho de 2010, 16:32

               

              Amigos, boa tarde. Sou nova na comunidade, gostei bastante do aplicativo, mas gostaria de saber onde posso arranjar o jni dessa biblioteca para desenvolver em java.

               

              Ou ainda, se terei q gerá-lo.

               

              Grato

              • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                31 de Julho de 2010, 10:57

                 

                Olá,

                Antes de tudo: Qual sistema operacional você está usando? O JNI está no pacote Java que disponibilizei na área de arquivos (versão de desenvolvimento).

            • 05565ec6ac2769f3ef902e5d0caa9ab4?only path=false&size=50&d=404Tiago Santos(usuário não autenticado)
              18 de Agosto de 2010, 13:06

               

              Perry,

              estou tendo um problema na hora da implantação.

              na minha maquina de testes consigo fazer a implementação funcionar, mas quando incluo em outra maquina (com WIN 2000) ocorre um erro na DLL.

              Incluí o arquivo pw3270_jni.dll no diretorio system32. O log de erro é esse:

               

              root cause

              java.lang.UnsatisfiedLinkError: C:\WINNT\system32\pw3270_jni.dll: The specified procedure could not be found
                  java.lang.ClassLoader$NativeLibrary.load(Native Method)
                  java.lang.ClassLoader.loadLibrary0(Unknown Source)
                  java.lang.ClassLoader.loadLibrary(Unknown Source)
                  java.lang.Runtime.loadLibrary0(Unknown Source)
                  java.lang.System.loadLibrary(Unknown Source)
                  pw3270.terminal.<clinit>(terminal.java:77)
                  com.iw.ecom.plugin.mf.servlet.Servlet.<init>(Servlet.java:27)
                  sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
                  sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
                  sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
                  java.lang.reflect.Constructor.newInstance(Unknown Source)
                  java.lang.Class.newInstance0(Unknown Source)
                  java.lang.Class.newInstance(Unknown Source)
                  org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                  org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
                  org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                  org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                  org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
                  java.lang.Thread.run(Unknown Source)

               

              poderia me ajudar? estou procurando na net sobre e não consegui contornar o problema...

              • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                18 de Agosto de 2010, 13:57

                 

                Olá,

                Pelo erro *parece* que ele não está conseguindo carregar a DLL da JNI por falta de alguma outra. As outras DLLs do pw3270 estão instaladas? Principalmente a lib3270.dll.

Essa comunidade não possui posts nesse blog