Configuração Path

26 respostas
Hudson_Lima

Boa Noite Senhores…

estou iniciando na linguagem Java, porém, com dúvidas e erros…
estou lendo o livro antigo ( (Apress)—Beginning JSP?, JSF? and Tomcat Web Development From Novice to Professionall—(2007) )
e desenvolvendo a pequena livraria on line do inicio do livro, nao to conseguindo compilar meu servlet…
segue codigo:

The Ebookshop Home Page index.jsp

<%@page language=“java” contentType=“text/html”%>
<%@page session=“true” import=“java.util.*, ebookshop.Book”%>

E-bookshop body {background-color:gray; font-size=10pt;} H1 {font-size:20pt;} table {background-color:white;}

Your online Bookshop


<% // Scriptlet 1: check whether the book list is ready
Vector booklist = (Vector)session.getValue("ebookshop.list");
if (booklist == null) {
response.sendRedirect("/ebookshop/eshop");
}
else {
%>


Book:

<% // Scriptlet 2: copy the book list to the selection control
for (int i = 0; i < booklist.size(); i++) {
out.println("" + (String)booklist.elementAt(i) + "");
}
%>

Quantity: 




<% // Scriptlet 3: check whether the shopping cart is empty
Vector shoplist = (Vector)session.getValue("ebookshop.cart");
if (shoplist != null && shoplist.size() > 0) {
%>
<% // Scriptlet 4: display the books in the shopping cart for (int i = 0; i < shoplist.size(); i++) { Book aBook = (Book)shoplist.elementAt(i); %> <% } // for (int i.. %>
TITLE PRICE QUANTITY
<%=aBook.getTitle()%> $<%=aBook.getPrice()%> <%=aBook.getQuantity()%>

<% } // if (shoplist.. } // if (booklist..else.. %>

Checkout.jsp

<%@page language=“java” contentType=“text/html”%>
<%@page session=“true” import=“java.util.*, ebookshop.Book” %>

E-Bookshop Checkout body {background-color:gray; font-size=10pt;} H1 {font-size:20pt;} table {background-color:white;}

Your online Bookshop - Checkout


<% Vector shoplist = (Vector)session.getValue("ebookshop.cart"); for (int i = 0; i < shoplist.size(); i++) { Book anOrder = (Book)shoplist.elementAt(i); %> <% } session.invalidate(); %>
TITLE PRICE QUANTITY
<%=anOrder.getTitle()%> $<%=anOrder.getPrice()%> <%=anOrder.getQuantity()%>
TOTALS $<%=(String)request.getAttribute("dollars")%> <%=(String)request.getAttribute("books")%>

Buy more!

Book.java

package ebookshop;

public class Book {

String title;

float price;

int quantity;

public Book(String t, float p, int q) {

title = t;

price = p;

quantity = q;

}

public String getTitle() { return title; }

public void setTitle(String t) { title = t; }

public float getPrice() { return price; }

public void setPrice(float p) { price = p; }

public int getQuantity() { return quantity; }

public void setQuantity(int q) { quantity = q; }

}

ShoppingServlet.java

package ebookshop;

import java.util.<em>;

import <a href="http://java.io">java.io</a>.</em>;

import javax.servlet.<em>;

import javax.servlet.http.</em>;

import ebookshop.Book;

public class ShoppingServlet extends HttpServlet {

public void init(ServletConfig conf) throws ServletException {

super.init(conf);

}

public void doGet (HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException {

doPost(req, res);

}

public void doPost (HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException {

HttpSession session = req.getSession(true);

Vector shoplist =

(Vector)session.getAttribute(ebookshop.cart);

String do_this = req.getParameter(do_this);

if (do_this == null) {

Vector blist = new Vector();

blist.addElement(Beginning JSP, JSF and Tomcat. Zambon/Sekler $39.99);

blist.addElement(Beginning JBoss Seam. Nusairat $39.99);

blist.addElement(Founders at Work. Livingston $25.99);

blist.addElement(Business Software. Sink $24.99);

blist.addElement(Foundations of Security. Daswani/Kern/Kesavan $39.99);

session.setAttribute(ebookshop.list, blist);

ServletContext sc = getServletContext();

RequestDispatcher rd = sc.getRequestDispatcher("/");

rd.forward(req, res);

}

else {

if (do_this.equals(checkout)) {

float dollars = 0;

int books = 0;

for (int i = 0; i < shoplist.size(); i++) {

Book aBook = (Book)shoplist.elementAt(i);

float price = aBook.getPrice();

int qty = aBook.getQuantity();

dollars += price * qty;

books += qty;

}

req.setAttribute(dollars, new Float(dollars).toString());

req.setAttribute(books, new Integer(books).toString());

ServletContext sc = getServletContext();

RequestDispatcher rd = sc.getRequestDispatcher("/Checkout.jsp");

rd.forward(req, res);

} // if (…checkout…

else {

if (do_this.equals(remove)) {

String pos = req.getParameter(position);

shoplist.removeElementAt((new Integer(pos)).intValue());

}

else if (do_this.equals(add)) {

boolean found = false;

Book aBook = getBook(req);

if (shoplist == null) { // the shopping cart is empty

shoplist = new Vector();

shoplist.addElement(aBook);

}

else { // update the #copies if the book is already there

for (int i = 0; i < shoplist.size() && !found; i++) {

Book b = (Book)shoplist.elementAt(i);

if (b.getTitle().equals(aBook.getTitle())) {

b.setQuantity(b.getQuantity() + aBook.getQuantity());

shoplist.setElementAt(b, i);

found = true;

}

} // for (i…

if (!found) { // if it is a new book => Add it to the shoplist

shoplist.addElement(aBook);

}

} // if (shoplist == null) … else …

} // if (…add…

session.setAttribute(ebookshop.cart, shoplist);

ServletContext sc = getServletContext();

RequestDispatcher rd = sc.getRequestDispatcher("/");

rd.forward(req, res);

} // if (…checkout…else

} // if (do_this…

} // doPost

private Book getBook(HttpServletRequest req) {

String myBook = req.getParameter(book);

int n = myBook.indexOf($);

String title = myBook.substring(0, n);

String price = myBook.substring(n+1);

String qty = req.getParameter(qty);

return new Book(title, Float.parseFloat(price), Integer.parseInt(qty));

} // getBook

}

compile_it.bat

@echo off
set aname=ebookshop
set /P fname=Please enter the java file name without extension:
set fil=%aname%%fname%
echo *** compile_it.bat: compile src%fil%.java
javac -verbose -deprecation -Xlint:unchecked -classpath classes src%fil%.java
if %errorlevel% GTR 1 goto _PAUSE
echo *** compile_it.bat: move the class to the package directory
move /y src%fil%.class classes%fil%.class
:_PAUSE
pause

porem, devo estar errando na configuracao das variaveis de ambiente, pois quando vou utilizar essa .bat
gera um erro do tipo :

src\ebookshop.class (Acesso Negado)

minha configuracao das variaveis:
CATALINA_HOME = C:\TomCat
JAVA_HOME = C:\Program Files\Java\jdk1.7.0_09
Path = C:\Webserver\PHP5;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0;%JAVA_HOME%\bin;%CATALINA_HOME%\bin

CLASSPATH = .;C:\Program Files\Java\jdk1.7.0_09\jre\lib*.*;C:\Program Files\Java\jdk1.7.0_09\src.zip;

alguem pode dar uma orientacao…

desde ja agradeço



26 Respostas

Edifran

Olá,

Não seria alguma falta de permissão?
Em algum momento o log apresenta (Acesso Negado)

Hudson_Lima

Olá, Nao séria alguma Falta de Permissão? Em algum Momento o log apresenta (Acesso Negado)

Boa tarde Edifran…
talvez seja falta de permissão… eu estou usando essa maquina como único usuário, porém tem o lance das permissões de administrador…
vc sabe como definir as permissões de administrador ?

grato

E

Voce esta utilizando alguma IDE? pelo que estou vendo esta fazendo tudo em um editor de texto e isso?

Hudson_Lima

Voce esta utilizando alguma IDE? pelo que estou vendo esta fazendo tudo em um editor de texto e isso?

Boa Tarde ElianMachado

estou com o proposito de entender sem o IDE…
aprendendo pelo mais dificil…

acho que estou errando na configuração da classpath

E

Nao vejo erro nela… vou dar mais uma olhada no geral…

Hudson_Lima

acabei de fazer um projetinho pra ver se estava funcionando tudo bem com servlet e
nao conseguir obter exito…
acho que é alguma má configuração com as variaveis de ambiente
criei a pasta jspbook em C:…\Tomcat 7.0\webapps e dentro da pasta jspbook a pasta
WEB-INF e welcome.html
dentro de WEB-INF o doc web.xml e a pasta classes/com/jspbook com HelloWorld.java
porém quando solicito http://127.0.0.1:9999/jspbook/HelloWorld, me retorna o erro HTTP 404 Status,

segue codigo

HelloWorld.java

package com.jspbook;

import <a href="http://java.io">java.io</a>.<em>;

import javax.servlet.</em>;

import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {

public void doGet(HttpServletRequest request,
                  HttpServletResponse response)
    throws IOException, ServletException
{
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    out.println("<html>");
    out.println("<head>");
    out.println("<title>Hello World!</title>");
    out.println("</head>");
    out.println("<body>");
    out.println("<h1>Hello World!</h1>");
    out.println("</body>");
    out.println("</html>");
}

}

web.xml

HelloWorld com.jspbook.HelloWorld HelloWorld /HelloWorld welcome.html

welcome.html

Welcome! Bem-vindo ao Exemplo de aplicação Web para Servlets and JSP, the J2EE Web Tier.
E

Estou achando que a arquitetura das pastas esta errada, vou postar aqui um JPG como utilizo por aqui tenta fazer igual e testar ok?

Hudson_Lima

vou fazer e testar…

Hudson_Lima

ElianMachado

como esta a configuracao de tua classpath?
coloca ai pra eu ver… por favor

E

eu utilizo Mac, deixa eu pegar em um maquina windows ja posto pra vc…

E

chegou a testar o comando javac diretamente no prompt?

E

Hudson Lima:
ElianMachado

como esta a configuracao de tua classpath?
coloca ai pra eu ver… por favor

Desculpe confundi com o path… pera que vou ver aqui pra vc…

Hudson_Lima

sim java e javac…
uma curiosidade, pelo menos pra mim, na conta administrador nao funciona javac
na minha conta funciona normal

Hudson_Lima

sim…java e javac…
uma curiosidade, pelo menos pra mim, na conta administrador nao funciona javac…
na minha conta funciona normal

E

Esta ai o CLASSPATH usado em uma maquina Windows 7

.;C:\Program Files (x86)\Java\jre7\lib\ext\QTJava.zip;C:\Program Files\Java\jdk1.7.0

E

um pergunta besta rs, vc rodou o .bat como administrador?

Hudson_Lima

elianmachado

rodou como adminstrador o javac…
porem eu nao encontrei ext\QTJava.zip; nas pastas do java…
talvez nao seja esse o problema?

estou utilizando o java 1.7.0_09

E

veja se a SDK esta ok… ou tenta remover e adicionar novamente…

E

Hudson, este conteúdo QTJava.zip seria uma biblioteca externa ou seja vc nao precisa dela rs… no classpath vc precisar ter referente ao java somente isso
;C:\Program Files\Java\jdk1.7.0 mais nada…

Hudson_Lima

elianmachado…

qual a estrutura basica para rodar um servlet simples…
sabe algum site para fazer um servlet simples…
quero testar se roda um basico nessa maquina…
posso estar fazendo de forma errada ou desatualizada…pois estou com livros antigos…
desde ja agradeço a atenção…

E

vc configurou a variavel de ambiente JAVA_HOME ?

E

para concluir se o problema estiver nas variaveis de ambiente tenta seguir esse topico para configurar…

E

Eu entendi o seu objetivo em aprender na “unha” porem este livro que esta seguindo pode estar realmente desatualizado, voce poderia utilizar uma IDE e depois entender o que ela faz para facilitar a vida, alem de te dar um apoio na implementacao, apenas uma dica voce decide claro. eu posso te passar um modelo de Servlet que tenho implementado na IDE Eclipse porem vc pode usar na vdd qualquer IDE uma do seu gosto por exemplo, se quiser posso fazer um exemplo pra vc estudar.

Hudson_Lima

elianmachado…

eu aceito tua ajuda com a IDE…
o objetivo de estar aprendendo na linha de comando eh pelo fato que ter que fazer uma prova futura, na qual os conhecimentos sao testados desde a base…
e nessa instituicao creio que nao utilizem IDE…se utilizam desconheco, pois acredito que aprendendo pelo dificil, o facil compreenderei mais rapido…
por favor me envie o que vc puder de conhecimento dessa fascinante ferramenta…

no aguardo

E

Hudson Lima:
elianmachado…

eu aceito tua ajuda com a IDE…
o objetivo de estar aprendendo na linha de comando eh pelo fato que ter que fazer uma prova futura, na qual os conhecimentos sao testados desde a base…
e nessa instituicao creio que nao utilizem IDE…se utilizam desconheco, pois acredito que aprendendo pelo dificil, o facil compreenderei mais rapido…
por favor me envie o que vc puder de conhecimento dessa fascinante ferramenta…

no aguardo


Ok Hudson, amanha chegando no trabalho faco um exemplo simples e lhe envio… ok?

Abraco e boa noite!

Hudson_Lima

ok amigo…

bom descanso…

selva !!!

Criado 23 de outubro de 2012
Ultima resposta 24 de out. de 2012
Respostas 26
Participantes 3