Jetty e Struts(Tags Librarys)

17 respostas
fviana

estou precisando somente de usar as tag librarys do struts e algumas que já tenho prontas.

consegui colocar o Jetty para funcionar com JSP mas como faço para rodar tags???

17 Respostas

Mauricio_Linhares

E precisa configurar mais alguma coisa?

fviana

não…

eu preciso que minha aplicação rode o servidor HTTP com o jetty (ou outro), sendo que o servidor deverá interpertar JSP e Tag Library.

Mauricio_Linhares

Não entendi…

Olha, qualquer container de servlets que implemente a especificação 2.0 do JSP dá suporte total a JSTL e Expression Language, você não precisa configurar ele pra ele fazer isso não.

Diogenes

Tudo bem q vc precisa…
Mas, fala pra nós q dificuldade vc tá achando nisso, senão fica difícil…
Pelo menos já tentou utilizar as TagLibs? Está com as tlds no WEB-INF?

fviana

é o seguinte:

1 - tenho uma classe que inicia o servidor:
import org.mortbay.jetty.Server;

public class WebServer {
	public static void main(String[] args) throws Exception {
		Server server = new Server();
		server.configure("C:/JSups/conf/jetty-config.xml");
		server.start();
	}
}
* configura segundo o xml e abre a conecção 2 - a configuração está no XML:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure 1.2//EN" "http://jetty.mortbay.org/configure_1_2.dtd">
<Configure class="org.mortbay.jetty.Server">
  <Call name="addListener">
    <Arg>
      <New class="org.mortbay.http.SocketListener">
        <Set name="Port" type="int">8080</Set>
        <Set name="MinThreads">5</Set>
        <Set name="MaxThreads">255</Set>
        <Set name="MaxIdleTimeMs">30000</Set>
        <Set name="MaxReadTimeMs">10000</Set>
        <Set name="MaxStopTimeMs">5000</Set>
        <Set name="LowResourcePersistTimeMs">5000</Set>
      </New>
    </Arg>
  </Call>
  <Call name="addContext">
    <Arg>
      <New class="org.mortbay.jetty.servlet.ServletHttpContext">
        <Set name="ContextPath">/</Set>
        <Set name="ResourceBase">C:/JSups/html/</Set>
        <Call name="addServlet">
          <Arg>*.jsp</Arg>
          <Arg>org.apache.jasper.servlet.JspServlet</Arg>
        </Call>
        <Call name="addHandler">
          <Arg>
            <New class="org.mortbay.http.handler.ResourceHandler">
              <Set name="DirAllowed">true</Set>
              <Set name="AcceptRanges">true</Set>
            </New>
          </Arg>
        </Call>
        <Call name="addHandler">
          <Arg>
            <New class="org.mortbay.http.handler.NotFoundHandler" />
          </Arg>
        </Call>
      </New>
    </Arg>
  </Call>
  <Set name="RequestLog">
    <New class="org.mortbay.http.NCSARequestLog">
      <Arg>C:/JSups/yyyy_mm_dd.http.log</Arg>
      <Set name="retainDays">90</Set>
      <Set name="append">true</Set>
      <Set name="extended">false</Set>
      <Set name="LogTimeZone">GMT</Set>
    </New>
  </Set>
</Configure>
* esta configuração abre o servidor na porta 8080, cria um contexto para a raiz e habilita o JSP.

3 - a estrutura das pastas está assim:
c:\JSups -> raiz
c:\JSups\lib -> as bibliotecas
c:\JSups\JSups.jar -> minhas classes
c:\JSups\html -> os jsps
c:\JSups\conf -> os xml

quando rodo da erros:
...
Element type "web-app" is not declared
...

e
...
No such webapps resource file:/C:/JSups/html/
...

e o ultimo erro foi que ele nao estava achando as tlds das tag library. o jsp funciona mas quando uso tags da um monte de erros.
acredito que seja configuração ou entao a estrutura das pastas.

se for, como deve ser feito?

Diogenes

Ele nao estava achando as tags??? Vc configurou elas no web.xml??? Qual exceçao ele tah levantando?

fviana

usando as tag library deu o erro:
The absolute uri: http://turing.engetron.com.br/engetron-tags.tld cannot be resolved in either web.xml or the jar files deployed with this application

removi as tags library e deu este erro:
Unable to compile class for JSP

acredito ser configuração e diretorios.
por exemplo, como, quais e onde ficam os xml?
eu so fiz aquele descrito acima.

Diogenes

Provavelmente vc deverá ter um web.xml comum, especificando as tags a serem utilizadas…

Algo do tipo:

...

 <!-- Struts Tag Library Descriptors -->
  <taglib>
    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-template.tld</taglib-location>
  </taglib>

...

Sacou?

fviana

vamos fazer o seguinte, vc tem msn ou email?
posso te mandar a aplicação toda pronta pra vc ver o que pode ser?

tenho certeza que é coisa muito boba…

Diogenes

Anexa a aplicacao ao seu post…(Se ela for pequena, eh claro.)

Diogenes

Agora, uma coisa a ser considerada também nesses casos são os classloaders…
Possivelmente vc tem q se utilizar de uma implementaçao específica para cada WebContainer.

foia

ahhh jetty,

1 - siga a estrutura (padrâo) de diretórios de uma Web Appication (não lembro do link, mas que existe, existe);

2 - coloque o tools.jar no classpath (compilar jsp) e o javac no PATH;

3 - boa sorte !!

fôia

fviana

cara, valeu pela força…

fiz varios testes, começei de novo e…

ate quem fim deu certo!!!

era a organização das pastas.

vamos fazer o seguinte, entre no link http://crm.engetron.com.br/http.zip e baixe o programa.

a pasta WEB-INF com os tlds e web.xml estava na raiz, identifiquei que o erro que estava dando era que nao estava encontrando os tlds. entao fui movendo a pasta ate que ele funcionou. ficou dentro da rais dos arquivos jsp.

queria coloca-la na raiz, como configuro isso?

fviana

mais outro problema…

fiz todo projeto no eclipse e, rodando por ele, da tudo certo.
gerei o .jar e quando roda da erro como se ele nao encontra-se as classes de compilar o jsp. a geração do jar está correta, os jars estão bem explicitos no maninfest. o que será???

Diogenes

Já tentou colocar os tlds debaixo de WEB-INF\lib ou WEB-INF\classes pra ver se funciona?

Mauricio_Linhares

Porque em vez de inicializar o server na mão, você não instala ele de verdade na sua máquina?

Diogenes

Acho q lembro do início de toda essa história

Criado 14 de junho de 2005
Ultima resposta 14 de jun. de 2005
Respostas 17
Participantes 4