私は、休止状態の設定で何が問題なのかを数週間試してきました。私は、Web開発にはかなり新しいので、一般的なエラーを私に許してください。私は、maven Webアプリケーションを使用して簡単なログインページを作成しようとしており、mysqlデータベースでフレームワークを休止状態にしています。ドライバは、上記のソースエクスプローラのようにデータベースに接続できます。しかし、休止状態の接続は読み取りスキーマエラーをスローします。読み取りスキーマエラー:データベースのテーブルの一覧を取得できませんでした。おそらくJDBCドライバ
プロジェクトを実行しようとすると、マップされたクラスの不明なエンティティエラーが発生します。私は同様の問題をオンラインで見てきましたが、解決策は機能していないようで、エラーは異なっています。
Userクラス:
package ProjectName.users;
import java.util.Date;
public class User {
private int user_no;
private String user_name;
private String password;
private String full_name;
private String email_id;
private String about_me;
private Date dob;
private Date doj;
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getFull_name() {
return full_name;
}
public void setFull_name(String full_name) {
this.email_id = full_name;
}
public String getEmail_id() {
return email_id;
}
public void setEmail_id(String email_id) {
this.email_id = email_id;
}
public void setAbout_me(String about_me) {
this.about_me = about_me;
}
public String getAbout_me() {
return about_me;
}
public Date getDob() {
return dob;
}
public void setDob(Date dob) {
this.dob = dob;
}
public Date getDoj() {
return doj;
}
public void setDoj(Date doj) {
this.doj = doj;
}
@Override
public String toString() {
return "userdb [user_no=" + user_no + "user_name=" + user_name + ",
password = " + password +", full_name = "+full_name+", dob = " + dob + ", doj = " +
doj + ", email_id=" + email_id + ", about_me=" + about_me + "]";
}
}
Hibernate設定ファイル:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property
name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">password</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/userdb</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">update </property>
<mapping resource="User.hbm.xml" />
</session-factory>
私は個人的な理由のためにプロジェクトの名前を消さました。以下はプロジェクトの詳細です。
スタックトレース:
Sep 09, 2017 1:58:36 PM org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection
INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.[email protected]240fdbb5] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode.
org.hibernate.UnknownEntityTypeException: Unable to locate persister: projectName.users.User
at org.hibernate.metamodel.internal.MetamodelImpl.locateEntityPersister(MetamodelImpl.java:637)
at org.hibernate.internal.SessionImpl.locateEntityPersister(SessionImpl.java:2942)
at org.hibernate.internal.SessionImpl.access$1800(SessionImpl.java:203)
at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2693)
at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2679)
at org.hibernate.internal.SessionImpl.byId(SessionImpl.java:1200)
at org.hibernate.internal.SessionImpl.get(SessionImpl.java:1073)
at ProjectName.users.UserDao.getuserByUID(UserDao.java:108)
at ProjectName.users.Validation.doPost(Validation.java:69)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:625)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:498)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:796)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1372)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Sep 09, 2017 1:58:36 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Validation] in context with path [/ProjectName] threw exception
javax.persistence.TransactionRequiredException: no transaction is in progress
at org.hibernate.internal.SessionImpl.checkTransactionNeeded(SessionImpl.java:3461)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1425)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1421)
at ProjectName.users.UserDao.getuserByUID(UserDao.java:112)
at ProjectName.users.Validation.doPost(Validation.java:69)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:625)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:498)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:796)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1372)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
その後、これはインデックスページからフォームを取得するサーブレットです。
@Entity
@Table
@Id
@Column
編集:
package ProjectName.users;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class Validation extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Validation() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
HttpSession session = request.getSession();
String mode = request.getParameter("mode");
UserDao u2 = new UserDao();
String un=request.getParameter("username");
String pw=request.getParameter("password");
if(mode.equals("register"))
{
String pw2=request.getParameter("password2");
if(!pw.equals(pw2))
{
String alert = "PM"; //Password Mismatch
session.setAttribute("alert",alert);
response.sendRedirect("index.jsp");
}
if(u2.getuserByID(un,pw)==null)
{
User u1 = new User();
u1.setUser_name(un);
u1.setPassword(pw);
u2.addUser(u1);
session.setAttribute("username", un);
session.setAttribute("password",pw);
response.sendRedirect("Profile.jsp");
}
}
else if(mode.equals("login"))
{
if(u2.getuserByUID(un)!=null) {
if(u2.getuserByID(un,pw)==null) {
String alert = "WP"; //Wrong password
session.setAttribute("alert",alert);
response.sendRedirect("index.jsp");
}
else
{
session.setAttribute("username", un);
session.setAttribute("password",pw);
response.sendRedirect("Profile.jsp");
}
}
else
{
String alert = "UU"; //Unregistered Username
session.setAttribute("alert",alert);
response.sendRedirect("index.jsp");
}
}
}
}
がフル例外スタックトレースや質問自体に関連するすべての情報を投稿してください。外部リンクや画像を使用しないでください。 –
スタックトレースとサーブレットクラスを追加しましたが、ハイバネート設定(JBoss Plugin)またはJavaクラスパスをテキストとして投稿できないと思います。まだ画像を埋め込むことはできません。 – awkwardcoder19
実際の原因は不明ですが、例外メッセージの 'projectName.users.User'と実際のパッケージ名' ProjectName.users'を比較してください。パッケージは通常大文字と小文字が区別されます(プラットフォームによって異なる場合があります)。パッケージ名には小文字を使用してください(そして好ましくは名前空間の逆ドメイン名) –