的pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tests</groupId>
<artifactId>Test</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>tests Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<spring.version>4.1.5.RELEASE</spring.version>
<hibernate.version>4.3.8.Final</hibernate.version>
<mysql.version>5.1.10</mysql.version>
<junit-version>4.11</junit-version>
<servlet-api-version>3.1.0</servlet-api-version>
<jsp-version>2.1</jsp-version>
<jstl-version>1.2</jstl-version>
</properties>
<dependencies>
<!-- Spring 4 dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<!-- Hibernate 4 dependencies -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>${hibernate.version}</version>
</dependency>
<!-- Servlet and JSP -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet-api-version}</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>${jsp-version}</version>
<scope>provided</scope>
</dependency>
<!-- JSTL dependency -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>${jstl-version}</version>
</dependency>
<!-- JUnit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit-version}</version>
<scope>test</scope>
</dependency>
<!-- External oralce jar -->
<dependency>
<groupId>ojdbc7</groupId>
<artifactId>ojdbc7</artifactId>
<version>1.0</version>
</dependency>
<!-- Json dependency -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.1.1</version>
</dependency>
<!-- Json dependency -->
<!-- slf4j-log4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
<build>
<finalName>tests</finalName>
<!-- <resources> <resource> <directory>src/main/java</directory> <includes>
<include>**/*.xml</include> <include>**/*.properties</include> </includes>
</resource> </resources> -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<outputDirectory>D:\Newfolder\Softwares\jboss-as-7.1.1.Final\standalone\deployments</outputDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
</plugins>
</build>
实体档案
Org.java&amp; Users.java&amp; UsersOrg.java
package com.tests.entity;
/**
* Org generated by hbm2java
*/
@Entity
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "orgId")
public class Org implements java.io.Serializable {
@Id
@Column(name = "orgId")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private BigDecimal orgId;
private BigDecimal parentOrgId;
private BigDecimal orgCode;
private String orgName;
private String description;
private BigDecimal actStat;
private Set<UserOrg> userOrgs = new HashSet<UserOrg>(0);
public Org() {
}
public Org(BigDecimal orgId, BigDecimal parentOrgId, BigDecimal orgCode, String orgName, BigDecimal actStat) {
this.orgId = orgId;
this.parentOrgId = parentOrgId;
this.orgCode = orgCode;
this.orgName = orgName;
this.actStat = actStat;
}
public Org(BigDecimal orgId, BigDecimal parentOrgId, BigDecimal orgCode, String orgName, String description, BigDecimal actStat,
Set<UserOrg> userOrgs) {
this.orgId = orgId;
this.parentOrgId = parentOrgId;
this.orgCode = orgCode;
this.orgName = orgName;
this.description = description;
this.actStat = actStat;
this.userOrgs = userOrgs;
}
public BigDecimal getOrgId() {
return this.orgId;
}
public void setOrgId(BigDecimal orgId) {
this.orgId = orgId;
}
public BigDecimal getParentOrgId() {
return this.parentOrgId;
}
public void setParentOrgId(BigDecimal parentOrgId) {
this.parentOrgId = parentOrgId;
}
public BigDecimal getOrgCode() {
return this.orgCode;
}
public void setOrgCode(BigDecimal orgCode) {
this.orgCode = orgCode;
}
public String getOrgName() {
return this.orgName;
}
public void setOrgName(String orgName) {
this.orgName = orgName;
}
public String getDescription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
public BigDecimal getActStat() {
return this.actStat;
}
public void setActStat(BigDecimal actStat) {
this.actStat = actStat;
}
public BigDecimal getOrgPhone() {
return this.orgPhone;
}
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
// @JsonIgnore
public Set<UserOrg> getUserOrgs() {
return this.userOrgs;
}
// @ManyToOne(cascade={}, fetch=FetchType.LAZY)
// @JsonIgnore
public void setUserOrgs(Set<UserOrg> userOrgs) {
this.userOrgs = userOrgs;
}
}
与Users.java&amp; UserOrg.java [orgId,userId forgin keys]
hibernate hbm xml文件Users.hbm.xml&amp; UserOrg.hbm.xml&amp; Org.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Jun 17, 2016 3:32:52 PM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping package="com.tests.entity">
<class name="Org" table="ORG">
<id name="orgId" type="big_decimal">
<column name="ORG_ID" precision="22" scale="0" />
<generator class="increment" />
</id>
<property name="parentOrgId" type="big_decimal">
<column name="PARENT_ORG_ID" precision="22" scale="0" not-null="true" />
</property>
<property name="orgCode" type="big_decimal">
<column name="ORG_CODE" precision="22" scale="0" not-null="true" />
</property>
<property name="orgName" type="string">
<column name="ORG_NAME" length="32" not-null="true" unique="true" />
</property>
<property name="description" type="string">
<column name="DESCRIPTION" length="100" />
</property>
<property name="actStat" type="big_decimal">
<column name="ACT_STAT" precision="22" scale="0" not-null="true" />
</property>
<set name="userOrgs" table="USER_ORG" inverse="true" lazy="true" fetch="select">
<key>
<column name="ORG_ID" precision="22" scale="0" />
</key>
<one-to-many class="UserOrg" />
</set>
<set name="branches" table="BRANCH" inverse="true" lazy="true" fetch="select">
<key>
<column name="ORG_ID" precision="22" scale="0" not-null="true" />
</key>
<one-to-many class="Branch" />
</set>
<!-- <set name="users" table="USER_ORG" inverse="true" lazy="true" fetch="select">
<key>
<column name="ORG_ID" precision="22" scale="0" />
</key>
<many-to-many class="Users" column="USER_ID" />
</set>
<set name="branches" table="BRANCH" inverse="true" lazy="false" fetch="select">
<key>
<column name="ORG_ID" precision="22" scale="0" not-null="true" />
</key>
<one-to-many class="Branch" />
</set> -->
</class>
</hibernate-mapping>
UserOrg.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Jun 17, 2016 3:32:52 PM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping package="com.tests.entity">
<class name="UserOrg" table="USER_ORG">
<id name="userOrgId" type="big_decimal">
<column name="USER_ORG_ID" precision="22" scale="0" />
<generator class="assigned" />
</id>
<many-to-one name="org" class="Org" fetch="select">
<column name="ORG_ID" precision="22" scale="0" />
</many-to-one>
<many-to-one name="users" class="Users" fetch="select">
<column name="USER_ID" precision="22" scale="0" />
</many-to-one>
</class>
</hibernate-mapping>
Hibernate Util文件
package com.tests.util;
@Repository
public class HibernateUtil {
@Autowired
private SessionFactory sessionFactory;
public Object getByUserId(String userQuery, String userId) {
return sessionFactory.getCurrentSession().createQuery(userQuery).setParameter("userId", userId).uniqueResult();
}
}
拦截器类
package com.tests.interceptor;
public class OrganizationInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String servletPath = request.getServletPath();
if (servletPath.equals("/organization")) {
return true;
}
return true;
}
}
控制器类
package com.tests.controller;
@Controller
@RequestMapping("organization")
public class OrganizationLoginController {
@SuppressWarnings("unused")
private static Logger logger = LoggerFactory.getLogger(OrganizationLoginController.class);
@Autowired
private OrganizationService organizationService;
@SuppressWarnings({ "unused", "rawtypes" })
@RequestMapping(value = { "/", "", "login" })
public @ResponseBody void organizationLogin(@RequestParam(required = false) String userName, @RequestParam(required = false) String password,
HttpServletRequest request, HttpServletResponse response) {
Users loginUser = organizationService.getLoginAuthentication(userName, password);
if(loginUser != null){
//Do something
}else{
//Do something
}
}
}
部署项目但在运行应用程序时出现错误[错误日志在下面]
我做了很多改动,但得到了同样的错误,如果@JsonIgnore使用它的工作正常,但我无法获得映射数据。
的server.log
15:32:36,948 DEBUG [org.springframework.web.servlet.DispatcherServlet] (ajp-localhost-127.0.0.1-8009-1) Could not complete request: org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/codehaus/jackson/map/JsonMappingException$Reference
at org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1287) [spring-webmvc-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:961) [spring-webmvc-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) [spring-webmvc-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) [spring-webmvc-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857) [spring-webmvc-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) [spring-webmvc-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:505) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:445) [jbossweb-7.0.13.Final.jar:]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_79]
Caused by: java.lang.NoClassDefFoundError: org/codehaus/jackson/map/JsonMappingException$Reference
at org.codehaus.jackson.map.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:166) [jackson-mapper-asl-1.9.13.jar:1.9.13]
at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:112) [jackson-mapper-asl-1.9.13.jar:1.9.13]
请帮助我在哪里做错了,我是hibernat的新人
答案 0 :(得分:0)
尝试添加jackson-core-asl依赖
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.13</version>
</dependency>