Olá pessoal,
Estou recebendo o seguinte erro em uma aplicacao:
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP
Generated servlet error:
Only a type can be imported. net.app.MateriaPrimaService resolves to a package
An error occurred at line: 15 in the jsp file: /AddMateriaPrima.jsp
Generated servlet error:
MateriaPrimaService cannot be resolved
An error occurred at line: 25 in the jsp file: /AddMateriaPrima.jsp
Generated servlet error:
net.app.MateriaPrima cannot be resolved or is not a type
An error occurred at line: 25 in the jsp file: /AddMateriaPrima.jsp
Generated servlet error:
net.app.MateriaPrima cannot be resolved or is not a type
Generated servlet error:
net.app.MateriaPrima cannot be resolved or is not a type
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:397)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
Há algo errado quando ele diz: “Only a type can be imported. net.app.MateriaPrimaService resolves to a package”
MateriaPrimaService é uma classe dentro do pacote net.app
Alguem já recebeu o mesmo erro?
Como você importou sua classe “net.app.MateriaPrimaService” ? Qual o comando que você usou na página?
Provavelmente você deve ter usado algo como “net.app.MateriaPrimaService.". Aí realmente acho que vai dar esse erro. Use “net.app.MateriaPrimaService” ou então, mais preguiçosamente, "net.app.”
Ptz, eu ia colocar o JSP mas esqueci :oops:
Aí vai:
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<%@ page import="net.app.MateriaPrimaService" %>
<%@ page import="java.util.List" %>
<html:html locale="true">
<head>
<title>Cadastra Materia Prima</title>
<html:base/>
</head>
<body bgcolor="white">
<html:errors/>
<%
List materiaPrimaList = MateriaPrimaService.getInstance().getMateriaPrimaList();
request.setAttribute("materiaPrima", materiaPrimaList);
%>
<p>Lista de materias primas no banco de dados:</p>
<table border=1>
<!-- This code will iterate over the list of items, creating a table
row for each item. -->
<logic:iterate id="element" name="items" scope="request" type="net.app.MateriaPrima" >
<tr>
<td><bean:write name="element" property="codigo" /></td>
<td><bean:write name="element" property="nome" /></td>
<td><bean:write name="element" property="descricao" /></td>
<td><bean:write name="element" property="unidade" /></td>
<td><bean:write name="element" property="custo" /></td>
<td><bean:write name="element" property="estoqueMinimo" /></td>
</tr>
</logic:iterate>
</table>
<p>Adicionar um item:</p>
<!-- This form will post the submitted data
to the addItem Action Mapping -->
<html:form action="addMateriaPrima.do" method="post">
<table border=1>
<tr><td>codigo:</td><td><html:text property="codigo" /></tr>
<tr><td>nome:</td><td><html:text property="nome" /></tr>
<td>descrição:</td><td><html:text property="descricao" /></td></tr>
<tr><td>unidade:</td><td><html:text property="unidade" /></tr>
<tr><td>custo:</td><td><html:text property="custo" /></tr>
<tr><td>estoque minimo:</td><td><html:text property="estoqueMinimo" /></tr>
</table><br/>
<html:submit/>
</html:form>
</body>
</html:html>
Testei mudando pra “net.app.*” mas deu a mesma coisa
Faça assim:
<%@ page import="net.app.*,java.util.*" %>
Obrigada, Mauricio. Mudou o erro, mas acredito que o erro novo ainda é relacionado:
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 14 in the jsp file: /AddMateriaPrima.jsp
Generated servlet error:
MateriaPrimaService cannot be resolved
An error occurred at line: 24 in the jsp file: /AddMateriaPrima.jsp
Generated servlet error:
net.app.MateriaPrima cannot be resolved or is not a type
An error occurred at line: 24 in the jsp file: /AddMateriaPrima.jsp
Generated servlet error:
net.app.MateriaPrima cannot be resolved or is not a type
Generated servlet error:
net.app.MateriaPrima cannot be resolved or is not a type
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:397)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
Essas classes estão dentro de “/WEB-INF/classes/net/app”?
O caminho completo é:
C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps\CadastroMP\WEB-INF\classes\net\app
Lá é onde estão todos os meus arquivos .class
(acabei de conferir e MateriaPrimaService.class está lá)
Pelo que eu vi, você tá usando o Struts, faça o seguinte, crie um action e no execute desse action você coloca o resultado da chamada desse método aí (MateriaPrimaService.getInstance().getMateriaPrimaList() ) do mesmo jeito que ele tá no JSP:
List materiaPrimaList = MateriaPrimaService.getInstance().getMateriaPrimaList();
request.setAttribute("materiaPrima", materiaPrimaList);
Aí você dá um forward pra esse JSP, que vai ficar mais ou menos assim:
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html:html locale="true">
<head>
<title>Cadastra Materia Prima</title>
<html:base/>
</head>
<body bgcolor="white">
<html:errors/>
<p>Lista de materias primas no banco de dados:</p>
<table border=1>
<!-- This code will iterate over the list of items, creating a table
row for each item. -->
<c:forEach items="${materiaPrima}" var="materia">
<tr>
<td>${materia.codigo} </td>
<td>${materia.nome} </td>
<td>${materia.descricao} </td>
<td>${materia.unidade} </td>
<td>${materia.custo} </td>
<td>${materia.estoqueMinimo} </td>
</tr>
</c:forEach>
<p>Adicionar um item:</p>
<!-- This form will post the submitted data
to the addItem Action Mapping -->
<html:form action="addMateriaPrima.do" method="post">
<table border=1>
<tr><td>codigo:</td><td><html:text property="codigo" /></tr>
<tr><td>nome:</td><td><html:text property="nome" /></tr>
<td>descrição:</td><td><html:text property="descricao" /></td></tr>
<tr><td>unidade:</td><td><html:text property="unidade" /></tr>
<tr><td>custo:</td><td><html:text property="custo" /></tr>
<tr><td>estoque minimo:</td><td><html:text property="estoqueMinimo" /></tr>
</table><br/>
<html:submit/>
</html:form>
</body>
</html:html>
Vê aí no que é que dá.
Ptz, que forma estranha de se resolver um problema heheeh
Obrigada Mauricio