gpt4 book ai didi

Java EE Servlet eclipse tomcat HTTP Error 500 Servlet执行抛出异常

转载 作者:行者123 更新时间:2023-11-28 23:30:36 27 4
gpt4 key购买 nike

我使用 hibernate-search-5.3.0.Beta2-dist、Eclipsse Indigo、Apache Tomcat v0.47

持久性.xml :

   <?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="Hibernate Tutozone" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>info.tutozone.food.Food</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/tutozonedb"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />

</properties>
</persistence-unit>
</persistence>

食物.java :

package info.tutozone.food;

import java.io.Serializable;
import java.lang.String;
import javax.persistence.*;

/**
* Entity implementation class for Entity: Food
*
*/
@Entity

public class Food implements Serializable {


@Id
private int id;
private String name;
private float price;
private int quantity;
private static final long serialVersionUID = 1L;

public Food() {
super();
}
public int getId() {
return this.id;
}

public void setId(int id) {
this.id = id;
}
public String getName() {
return this.name;
}

public void setName(String name) {
this.name = name;
}
public float getPrice() {
return this.price;
}

public void setPrice(float price) {
this.price = price;
}
public int getQuantity() {
return this.quantity;
}

public void setQuantity(int quantity) {
this.quantity = quantity;
}
@Override
public String toString() {
return "Food [id=" + id + ", name=" + name + ", price=" + price
+ ", quantity=" + quantity + "]";
}

}

TestServlet.java :

    package info.tutozone.food;
import java.io.IOException;
import javax.persistence.EntityManager;
import javax.persistence.Persistence;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class TestServlet
*/
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public TestServlet() {
super();
// TODO Auto-generated constructor stub
}

/*
* Tuto Hibernate avec Eclipse
* author : Zied
* www.tutozone.info
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub

EntityManager manager=Persistence.createEntityManagerFactory("Hibernate Tutozone").createEntityManager();

manager.getTransaction().begin();
manager.getTransaction().commit();

}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}

public static void main(String[] args) {
// TODO Auto-generated method stub
EntityManager manager = Persistence.createEntityManagerFactory(
"Hibernate Tutozone").createEntityManager();

manager.getTransaction().begin();
// add a new row in table
Food food = new Food();
food.setId(1);
food.setName("Cacke");
food.setQuantity(new Integer(20));
food.setPrice(new Float(2500));
manager.persist(food);

manager.getTransaction().commit();
manager.close();
}}

当我在 tomcat 上部署此项目时,我在 http://localhost:8080/HibernateTutoZone/TestServlet 上出现此错误

type Exception report message Servlet execution threw an exception description The server encountered an internal error that prevented it from fulfilling this request. exception javax.servlet.ServletException: Servlet execution threw an exception org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) root cause java.lang.NoClassDefFoundError: org/jboss/jandex/IndexView org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:51)

我在 Eclipsse Indigo 的控制台上有这个错误:

SEVERE: Servlet.service() for servlet [info.tutozone.food.TestServlet] in context with path [/HibernateTutoZone] threw exception [Servlet execution threw an exception] with root cause java.lang.ClassNotFoundException: org.jboss.jandex.IndexView

如果我在我的项目上运行 run as->run configuation->Apache Tomcat->classpath->user Entries-> Add external jar -> jandex-1.1.0.final.jar 我没有错误

但即使我没有错误,如果我这样做,TestServlet.java 的 main() 也不会工作

然后我想了解问题是什么,我该如何解决?

最佳答案

在这种情况下,您不能使用外部 jar。 Tomcat 本身在运行时负责决定它接受哪些 jar 作为您的应用程序的一部分,这意味着将它们以一种或另一种方式放入您的网络应用程序的 WEB-INF/lib

请停止使用 Indigo,它已经快 4 岁了。

关于Java EE Servlet eclipse tomcat HTTP Error 500 Servlet执行抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30767934/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com