저는 봄과 겨울잠을하기가 처음입니다. 프로젝트를 만들었지 만 여기에 그 기능이 있습니다. 응용 프로그램에는 submit을 누른 후 Controller 클래스로 리디렉션되는 JSP의 양식 요소가 있습니다. 컨트롤러는 DAO를 호출하고 마지막으로 레코드를 데이터베이스에 추가하는 서비스 계층을 호출합니다. 내가 겪고있는 문제는 컨트롤러 클래스에서 요청 매개 변수 (POST)를받을 수 있지만 서비스 레이어의 addMember()를 호출하는 동안 문제가 있다는 것입니다. 문제는 개체에 대한 Null 포인터 예외입니다. 여러분은 코드를 검토하고 제안을 해주실 수 있습니까? 여기 요청 처리가 실패했습니다. 중첩 예외는 java.lang.NullPointerException입니다. 최대 절전 모드 통합
여기 내 컨트롤러 클래스 인 LoginControllerpackage com.online.site.member;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.online.site.Member.Member;
import com.online.site.Member.MemberBoImpl;
@Controller
@RequestMapping("/Login.htm")
public class LoginController {
@Autowired
//@Qualifier(value="memberServiceImp")
private MemberBoImpl memberServiceImpl;
public void setMemberServiceImp(MemberBoImpl memberServiceImpl) {
this.memberServiceImpl = memberServiceImpl;
System.out.println(memberServiceImpl.toString());
}
@RequestMapping(method=RequestMethod.POST)
public String executeLogin(@ModelAttribute("Login") Member member, BindingResult result)
{
/* call member record fetch method from service layer.
* if login successful redirect to home page. If not a member
* call create member method from service layer and redirect to create account page*/
memberServiceImpl.addMember(member);
//memberServiceImp.getMemberDetails(member.getMemberId());
return "CreateMemberProfile";
}
@RequestMapping(method=RequestMethod.GET)
public String initializeMemberLoginForm(ModelMap model)
{
Member member = new Member();
model.addAttribute("Login", member);
return "Login";
}
}
입니다 여기에
@Service
public class MemberBoImpl implements MemberInterface{
//@Autowired
private MemberDaoImpl memberDaoImpl;
/*private HibernateTemplate hibernateTemplate;
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;}*/
public void setMemberDaoImpl(MemberDaoImpl memberDaoImpl) {
this.memberDaoImpl = memberDaoImpl;
System.out.println("in doa setter");
}
public boolean addMember(Member member) {
//hibernateTemplate.save(member);
System.out.println("in bo impl"+member.getMemberId());
System.out.println(memberDaoImpl.toString());
memberDaoImpl.addMember(member);
return false;
}
}
는 DAO 클래스를있는 서비스 클래스에게 있습니다
여기package com.online.site.Member;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;
public class MemberDaoImpl implements MemberInterface{
@Autowired
private HibernateTemplate hibernateTemplate;
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
System.out.println("in hibernate setter");}
public boolean addMember(Member member) {
System.out.println("dao impl");
hibernateTemplate.save(member);
return false;
}
}
은 config.xml에
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:lang="http://www.springframework.org/schema/lang"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.2.xsd">
<context:annotation-config/>
<!-- <context:component-scan base-package="com.online.site"></context:component-scan> -->
<bean id="memberServiceImpl" class="com.online.site.Member.MemberBoImpl"
scope="singleton" autowire="byType">
<property name="memberDaoImpl" ref="memberDaoImpl"></property>
<!-- <property name="hibernateTemplate" ref="hibernateTemplate"></property>-->
</bean>
<bean id="member" class="com.online.site.Member.Member"/>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/onlineshopssite"></property>
<property name="username" value="root"></property>
<property name="password" value="admin"></property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="annotatedClasses">
<list>
<value>com.online.site.Member.Member</value>
</list>
</property>
</bean>
<bean name="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="memberDaoImpl" class="com.online.site.Member.MemberDaoImpl" autowire="byType">
<property name="hibernateTemplate" ref="hibernateTemplate"></property>
</bean>
</beans>
01 여기 23,516,
나는 다양한 포럼하지만 아무것도에 많은 제안을 시도했습니다 디스패처-servlet.xml에
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<import resource="classpath*:/onlineShop-config.xml" />
<!-- step eight: http://localhost:8080/Spring3MVCDemo/customer.htm -->
<context:component-scan base-package="com.online.site,com.online.site.Billing,com.online.site.Member"></context:component-scan>
<!-- step 12 public String initializeCustomerForm(ModelMap model) { returning
string value return "createCustomer" createCustomer prefix and suffix will
be added by the InternalResourceViewResolver http://localhost:8080/Spring3MVCDemo/createCustomer.jsp -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
일부 basci 단계 누락 가능성이 높다 일하러 보인다. 누구든지 내 코드를보고 제안 할 수 있습니까?
또한 필드 주입을 사용한다면, 비즈니스 로직에서 'HibernateTemplate'을 변경하지 않는 한 세터가 필요 없다. , 가능성은 희박합니다). – Floegipoky