Mensagens enviadas por: psevestre
Índice dos Fóruns » Perfil de psevestre » Mensagens enviadas por psevestre
Autor Mensagem
NoodleZ wrote:
Eu so contratado como PJ e consciente que minha situação é irregular. O que temos que por nas nossas cabecas é que não é certo.


Concordo com seu ponto de que a situação é irregular/ilegal (conceito jurídico), mas isto não quer dizer que seja "errado" (conceito moral).

Acho que devemos nos conscientizar de que a lei está defasada em relação à evolução das relações de trabalho que, em particular no caso da área de TI, modificaram a natureza das mesmas.

Pela CLT, acidentes no trajeto trabalho/casa e vice-versa são considerados acidentes de trabalho. Como fica isto no caso de quem trabalha em casa, via internet ? Se tropeço num brinquedo do meu filho no caminho do micro para a cozinha e quebro a perna, isto é um acidente de trabalho ?

Lembre-se, o código civil até pouco tempo falava de "mulher honesta"....

No fundo, o "regime PJ" é simplesmente uma reação da "mão invisível do mercado" a uma legislação caótica e inadequada. Infelizmente, nossos legisladores parecem não ter muito tempo para isto..



Maurício Linhares wrote:A documentação diz as mesmas coisas sobre as duas (até o texto é o mesmo) mas a primeira herda da segunda:

http://struts.apache.org/api/org/apache/struts/validator/DynaValidatorForm.html

http://struts.apache.org/api/org/apache/struts/validator/DynaValidatorActionForm.html



O texto é quase igual.

A diferença é a chave usada para buscar a regra de validação no (ou nos) arquivos de validação (validator-xxxxx.xml).

No DynaValidatorForm, a chave é o valor do atributo "name" do form.

No DynaValidatorActionForm, a chave é o path da action que estiver no form.

Acho que isto deveria funcionar:

1. Mude seu form para que, no submit, o conteúdo do campo "j_username" seja o resultado da concatenação do usuário e código da empresa, separados por algum caracter conveniente (ex: '@'). (Um javascript bobinho no onsubmit() resolve isto)

2. Implemente um outro realm baseado no DataSourceRealm que permita receber o nome do usuário com o '@' mas que use apenas a parte inicial na hora do lookup. Ex, se o username recebido for joao@acme, a implementação fará o lookup utilizando apenas o "joao". Talvez seja possível alguma gambi com views, verifique !

3. Na aplicação, o seu "request.getRemoteUser()" voltará o string "usuario@empresa". Se quiser, implemente um filtro que separe estes dois campos e os deixe expostos na forma de variáveis ThreadLocal, de forma que vc possa ter acesso às mesmas em qualquer ponto do código sem ter que ficar passando argumentos.



Obs: Se vc. puder trocar para o JBoss, o equivalente do DataSourceRealm está no arquivo login-config.xml, que permite definir a query inteira, o que possivelmente eliminará a necessidade de um realm customizado.

Não sei se ajuda, mas o Velocity possui o #foreach. Exemplo de uso:

<form>
#foreach( $field in $fields )
<input type="text" name="${field.name}" value="${fields.value}">
#end

<input type="submit>
</form>



Pela mensagem que vc. obteve, o struts não achou o "mapping" para o caminho "/login".

Verifique:

1. Existe um <action-mapping> para "/login" no arquivo de configuração ?
2. O arquivo de configuração está sendo lido pelo struts ?



Sua aplicação está embaixo do contexto "/ABC".
Isto significa que o acesso à aplicação deve ser feito usando uma url do tipo:

http://servidor:porta/ABC/login (ou outro path qq).
1. Coloque os JARs que estão no $JBOSS_HOME/client em um local visível para
suas aplicações web.

2. Crie jars com as interfaces home e remote dos EJBs para uso pelos clientes

3. Para fazer o lookup dos EJBs, passe as propriedades abaixo como argumento do contrutor do InitialContext():

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://SERVIDORJBOSS:1099

obs: Sugiro deixar isto em um arquivo de propriedades que vc. carrega no init de algum servlet e deixa gardado para uso posterior em uma propriedade no contexto da aplicação.

Fonte:
http://wiki.jboss.org/wiki/Wiki.jsp?page=AccessEJBsRemotely

Acho que o motivo é simples.

O português normalmente não costuma ser o forte da turma de informática, e, infelizmente, não é cobrado nos cursos superiores de exatas.

Quem desenvolve em Java ou outras linguagens que possuem o conceito de exceção acaba vendo diariamente a versão em inglês do termo escrita na cara, e aprende a grafia correta. Já para o português...
Viajei...

Pode declarar a exceção ( Com "c" cedilha !!!, sofro demais ver isto escrito de outra forma ;^)).

O invoke exception pode ocorrer por várias razões, mande o stack trace completo e quem sabe aparece algo mais...

Ajuda tb. se vc. mandar o trecho de código que faz a chamada, a versão do JBoss, JVM, OS, propriedades, contexto de execução (ex: cliente/servidor, apl. web, etc).

Ajude-nos a te ajudar !


Sua interface home não deve declarar as exceções indicadas, ou seja, fica só o create().


Complementando:

A técnica sugerida combina um "token" armazenado na sessão juntamente com um campo "hidden" do formulário. A lógica é a seguinte:

1. No controller que recebe a requisição da página que _apresenta_ o formulário, gere um número aleatório (em sites de baixo tráfego, pode até ser o System.currentTimeMillis() ). Salve este valor na sessão sob um nome conhecido, tal como "nomedoform.token". Na página em si, use um input hidden cujo valor será preenchido com o valor do atributo "nomedoform.token". Dê ao mesmo um nome que faça sentido, "token", p.ex.

2. No controller que recebe o POST do formulário, compare o valor da variável "token" recebida no request ao valor do atributo "nomedoform.token". Se o atributo não existir ou seu valor for diferente do submetido, redirecione para a mensagem de erro "formulário já enviado". Caso contrário prossiga no processamento do mesmo.
Costumo fazer assim:

1. No Header das páginas (pode ser tb. num include ou num layout, se vc. usar o tiles)
<head>
...
<script language="JavaScript"
src='<html:rewrite page="/config/validador.jsp"/>'>
</script>
...
</head>


2. /config/validator.jsp

<html:javascript dynamicJavascript="false" staticJavascript="true" />

Obs: nesta página convém setar tb. alguns headers da resposta para
garantir a "cacheabilidade" da mesma.

3. Nas páginas:


<html:javascript staticJavacript="false" dynamicJavascript="true" formName="NomeDoForm _ou_ /path/da/action" />

 
Índice dos Fóruns » Perfil de psevestre » Mensagens enviadas por psevestre
Ir para:   
Powered by JForum 2.1.8 © JForum Team