java - Struts 2 Hibernate null pointer exception while submitting the form -


i trying create registration page integrating struts 2 & hibernate. when running below code , getting null pointer exception when click register button.

hibernate configuration file:

<hibernate-configuration>   <session-factory>     <property name="hibernate.dialect">org.hibernate.dialect.mysqldialect</property>     <property name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property>     <property name="hibernate.connection.url">jdbc:mysql://localhost/db_socialnetwork</property>     <property name="hibernate.connection.username">root</property>     <property name="hibernate.connection.password">root</property>     <mapping resource="hibernate.hbm.xml"/>   </session-factory> </hibernate-configuration> 

hibernate mapping file:

<hibernate-mapping>   <class name="models.user" table="tbl_user"> //dao class         <meta attribute="class-description">             class contains sample.         </meta>         <id column="user_id" name="id" type="int">             <generator class="increment"/>         </id>         <property column="user_name" name="name" type="string"/>         <property column="user_pwd" name="pwd" type="string"/>          <property column="user_email" name="email" type="string"/>         <property column="user_address" name="address" type="string"/>         <property column="user_phno" name="phno" type="int"/>     </class> </hibernate-mapping> 

struts.xml:

<struts>     <!-- configuration default package. -->     <constant name="struts.devmode" value="true" />     <package name="default" extends="struts-default" namespace="/">         <action name="register" class="models.registeraction" method="execute">             <result name="success">/home.jsp</result>         </action>     </package> </struts> 

web.xml:

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">     <filter>         <filter-name>struts2</filter-name>         <filter-class>org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter</filter-class>     </filter>     <filter-mapping>         <filter-name>struts2</filter-name>         <url-pattern>/*</url-pattern>     </filter-mapping>     <session-config>         <session-timeout>             30         </session-timeout>     </session-config>     <welcome-file-list>         <welcome-file>index.jsp</welcome-file>     </welcome-file-list> </web-app> 

hibernateutil:

public class hibernateutil { private static final sessionfactory sessionfactory;      static {         try {                   //new schemaexport(config).create(true,true);          sessionfactory = new configuration().configure().buildsessionfactory();          } catch (throwable ex) {             // log exception.             system.err.println("initial sessionfactory creation failed." + ex);             throw new exceptionininitializererror(ex);         }     }      public static sessionfactory getsessionfactory() {         return sessionfactory;     } } 

registration form:

<html>     <head>         <meta http-equiv="content-type" content="text/html; charset=utf-8">         <title>jsp page</title>     </head>     <body>         <s:form action="register">             <s:textfield name="name" label="name"/>             <s:textfield name="pwd" label="password"/>              <s:textfield name="email" label="email"/>             <s:textarea name="address" label="address"/>             <s:textfield name="phno" label="mobile"/>              <s:submit value="register"/>         </s:form>     </body> </html> 

registeraction:

public class registeraction extends actionsupport implements modeldriven<user>{     user u = new user();     userdao udao = new userdao();     public registeraction() {     }      public string execute() throws exception {          udao.adduser(u);         return "success";     }      @override     public user getmodel() {         throw new unsupportedoperationexception("not supported yet.");     }      public user getu() {         return u;     }      public void setu(user u) {         this.u = u;     } }     

user class:

public class user {         int id, phno;     string name, pwd, email, address;      public string getaddress() {         return address;     }      public void setaddress(string address) {         this.address = address;     }      public string getemail() {         return email;     }      public void setemail(string email) {         this.email = email;     }      public int getid() {         return id;     }      public void setid(int id) {         this.id = id;     }      public string getname() {         return name;     }      public void setname(string name) {         this.name = name;     }      public int getphno() {         return phno;     }      public void setphno(int phno) {         this.phno = phno;     }      public string getpwd() {         return pwd;     }      public void setpwd(string pwd) {         this.pwd = pwd;     } } 

userdao:

class userdao {       public userdao() {     }      public static void adduser(user u) {          session session = hibernateutil.getsessionfactory().opensession();         transaction t = session.begintransaction();         int = (integer)session.save(u);         t.commit();         session.close();     } } 

the database consists of following fields:

  • id - autogenerated , int , primary key
  • name,
  • pwd,
  • email,
  • address - string,
  • phno - int

error being displayed is:

info: hibernate 3.2.5 info: hibernate.properties not found info: bytecode provider name : cglib info: using jdk 1.4 java.sql.timestamp handling info: configuring resource: /hibernate.cfg.xml info: configuration resource: /hibernate.cfg.xml info: reading mappings resource : hibernate.hbm.xml severe: error parsing xml: xml inputstream(17) content of element type "class" must match "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,resultset*,(query|sql-query)*)". severe: initial sessionfactory creation failed.org.hibernate.invalidmappingexception: not parse mapping document resource hibernate.hbm.xml warning: standardwrappervalve[default]: pwc1406: servlet.service() servlet default threw exception org.xml.sax.saxparseexception: content of element type "class" must match "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,resultset*,(query|sql-query)*)".         @ com.sun.org.apache.xerces.internal.util.errorhandlerwrapper.createsaxparseexception(errorhandlerwrapper.java:198)         @ com.sun.org.apache.xerces.internal.util.errorhandlerwrapper.error(errorhandlerwrapper.java:134)         @ com.sun.org.apache.xerces.internal.impl.xmlerrorreporter.reporterror(xmlerrorreporter.java:387)         @ com.sun.org.apache.xerces.internal.impl.xmlerrorreporter.reporterror(xmlerrorreporter.java:321)         @ com.sun.org.apache.xerces.internal.impl.dtd.xmldtdvalidator.handleendelement(xmldtdvalidator.java:2020)         @ com.sun.org.apache.xerces.internal.impl.dtd.xmldtdvalidator.endelement(xmldtdvalidator.java:904)         @ com.sun.org.apache.xerces.internal.impl.xmldocumentfragmentscannerimpl.scanendelement(xmldocumentfragmentscannerimpl.java:1750)         @ com.sun.org.apache.xerces.internal.impl.xmldocumentfragmentscannerimpl$fragmentcontentdriver.next(xmldocumentfragmentscannerimpl.java:2906)         @ com.sun.org.apache.xerces.internal.impl.xmldocumentscannerimpl.next(xmldocumentscannerimpl.java:624)         @ com.sun.org.apache.xerces.internal.impl.xmlnsdocumentscannerimpl.next(xmlnsdocumentscannerimpl.java:116)         @ com.sun.org.apache.xerces.internal.impl.xmldocumentfragmentscannerimpl.scandocument(xmldocumentfragmentscannerimpl.java:486)         @ com.sun.org.apache.xerces.internal.parsers.xml11configuration.parse(xml11configuration.java:810)         @ com.sun.org.apache.xerces.internal.parsers.xml11configuration.parse(xml11configuration.java:740)         @ com.sun.org.apache.xerces.internal.parsers.xmlparser.parse(xmlparser.java:110)         @ com.sun.org.apache.xerces.internal.parsers.abstractsaxparser.parse(abstractsaxparser.java:1208)         @ com.sun.org.apache.xerces.internal.jaxp.saxparserimpl$jaxpsaxparser.parse(saxparserimpl.java:525)         @ org.dom4j.io.saxreader.read(saxreader.java:465)         @ org.hibernate.cfg.configuration.addinputstream(configuration.java:499)         @ org.hibernate.cfg.configuration.addresource(configuration.java:566)         @ org.hibernate.cfg.configuration.parsemappingelement(configuration.java:1587)         @ org.hibernate.cfg.configuration.parsesessionfactory(configuration.java:1555)         @ org.hibernate.cfg.configuration.doconfigure(configuration.java:1534)         @ org.hibernate.cfg.configuration.doconfigure(configuration.java:1508)         @ org.hibernate.cfg.configuration.configure(configuration.java:1428)         @ org.hibernate.cfg.configuration.configure(configuration.java:1414)         @ models.hibernateutil.<clinit>(hibernateutil.java:24)         @ models.registeraction.<init>(registeraction.java:10)         @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method)         @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:57)         @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45)         @ java.lang.reflect.constructor.newinstance(constructor.java:539)         @ java.lang.class.newinstance0(class.java:372)         @ java.lang.class.newinstance(class.java:325)         @ com.opensymphony.xwork2.objectfactory.buildbean(objectfactory.java:119)         @ com.opensymphony.xwork2.objectfactory.buildbean(objectfactory.java:150)         @ com.opensymphony.xwork2.objectfactory.buildbean(objectfactory.java:139)         @ com.opensymphony.xwork2.objectfactory.buildaction(objectfactory.java:109)         @ com.opensymphony.xwork2.defaultactioninvocation.createaction(defaultactioninvocation.java:288)         @ com.opensymphony.xwork2.defaultactioninvocation.init(defaultactioninvocation.java:388)         @ com.opensymphony.xwork2.defaultactionproxy.prepare(defaultactionproxy.java:187)         @ org.apache.struts2.impl.strutsactionproxy.prepare(strutsactionproxy.java:61)         @ org.apache.struts2.impl.strutsactionproxyfactory.createactionproxy(strutsactionproxyfactory.java:39)         @ com.opensymphony.xwork2.defaultactionproxyfactory.createactionproxy(defaultactionproxyfactory.java:47)         @ org.apache.struts2.dispatcher.dispatcher.serviceaction(dispatcher.java:478)         @ org.apache.struts2.dispatcher.ng.executeoperations.executeaction(executeoperations.java:77)         @ org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter.dofilter(strutsprepareandexecutefilter.java:91)         @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:256)         @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:217)         @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:279)         @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:175)         @ org.apache.catalina.core.standardpipeline.doinvoke(standardpipeline.java:655)         @ org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:595)         @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:161)         @ org.apache.catalina.connector.coyoteadapter.doservice(coyoteadapter.java:331)         @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:231)         @ com.sun.enterprise.v3.services.impl.containermapper$adaptercallable.call(containermapper.java:317)         @ com.sun.enterprise.v3.services.impl.containermapper.service(containermapper.java:195)         @ com.sun.grizzly.http.processortask.invokeadapter(processortask.java:860)         @ com.sun.grizzly.http.processortask.doprocess(processortask.java:757)         @ com.sun.grizzly.http.processortask.process(processortask.java:1056)         @ com.sun.grizzly.http.defaultprotocolfilter.execute(defaultprotocolfilter.java:229)         @ com.sun.grizzly.defaultprotocolchain.executeprotocolfilter(defaultprotocolchain.java:137)         @ com.sun.grizzly.defaultprotocolchain.execute(defaultprotocolchain.java:104)         @ com.sun.grizzly.defaultprotocolchain.execute(defaultprotocolchain.java:90)         @ com.sun.grizzly.http.httpprotocolchain.execute(httpprotocolchain.java:79)         @ com.sun.grizzly.protocolchaincontexttask.docall(protocolchaincontexttask.java:54)         @ com.sun.grizzly.selectionkeycontexttask.call(selectionkeycontexttask.java:59)         @ com.sun.grizzly.contexttask.run(contexttask.java:71)         @ com.sun.grizzly.util.abstractthreadpool$worker.dowork(abstractthreadpool.java:532)         @ com.sun.grizzly.util.abstractthreadpool$worker.run(abstractthreadpool.java:513)         @ java.lang.thread.run(thread.java:717)  

you misunderstand dao/dto pattern. dao/dtos should not static. , sessionfactory better build once per application, because it's time consuming procedure.

better implement session per thread pattern. write class hibernateutil build sessionfactory , session.

then dao like

public class userdao {      public session getsession() {       return hibernateutil.getsession();     }      public void closesession() {       hibernateutil.closesession();     }      public void adduser(user u) {             session session = getsession();         transaction t = session.begintransaction();         int = (integer)session.save(u);         t.commit();         closesession();     } } 

in action write

private userdao userdao = new userdao();  public string execute() throws exception {     user u = new user();     u.setaddress(address);     u.setemail(email);     u.setname(name);     u.setphno(phno);     u.setpwd(pwd);     userdao.adduser(u);     return "success"; } 

Comments

Popular posts from this blog

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

html - How to style widget with post count different than without post count -

url rewriting - How to redirect a http POST with urlrewritefilter -