springside的新工程在Eclipse中启动Tomcat,出错,NoClassDefFoundError, ServletContextListener
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springside的新工程在Eclipse中启动Tomcat,出错,NoClassDefFoundError, ServletContextListener相关的知识,希望对你有一定的参考价值。
我用new-project.bat在springside-3.2.1中创建了一个new project.
在\springside-3.2.1\tools\tomcat\apache-tomcat-6.0.20\conf\server.xml中加入
<Context path="/firstProject" docBase="F:\JAVA\Workspace\springside-3.2.1\tools\code-generator\generated-project\firstProject\webapp" reloadable="true"/>
在Eclipse中启动Tomcat.却报错了.怎么解决?另外用jetty-run-default.bat可以正常启动web服务.
有的说是tomcat多了与工程重复的.jar文件,但是我找了,没有发现.而且是刚刚创建出来的new project.
错误提示如下:
2011-6-18 17:25:43 org.apache.catalina.core.StandardContext listenerStart
严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
ServletContextListener 这个类不存在追问
我当然知道这个类不存在,可是为什么不存在,我使用的是all-in-one版本,
应该所有包都是齐全的.
我在其他地方看到,可能是有jar包version冲突的可能.但是不知道是哪些包冲突了.
总之,谁能搞个all-in-one的使用在Eclipse中的tomcat傻瓜版本操作流程?
追问
我觉得springside的code写得不错.我把他当作例子来学习.
可是,我现在需要在Eclipse中debug,希望使用tomcat启动server/
就这么一点怎么看得出来追问
代码有100多M,不能发吧.
需要的去www.springside.org下载.版本号:3.2.1(all In one),这是我用的,应该是前年下载的.
不过,3.3.4的,我也试过,都是一样的,按照江南白衣写的quick-start.bat.
再new project之后,怎么使用自带的tomcat6.0,在Eclipse中启动server?
我不想用jetty打包和启动server,不能debug.
去下载一个tomcat eclipse插件
Springside4—CRUD
转载 https://github.com/springside/springside4/wiki/Tutorial
CRUD页面教程
1. 数据库设计
在src/resouce/sql/schema 中手工编写创建表的sqlcreate table acct_user ( id bigint generated by default as identity, email varchar(255), login_name varchar(255) not null unique, name varchar(255), password varchar(255), primary key (id) ) ;
2. Entity
2.1 手工编写Entity,利用默认大于配置原理,写尽量少的注释, 一般只有带前缀的表名,Cache和关联属性需要注释。@Entity @Table(name = "acct_user") @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class User extends IdEntity { private String loginName; private String password; private String name; private String email; //... getter and setter }
3. DAO
3.1 写一个简单的DAO接口,日后再根据需要添加方法定义。public interface UserDao extends PagingAndSortingRepository<User, Long> { User findByLoginName(String loginName); }
4.Service
4.1 按业务划分新建或使用已有Service(与DAO不应是一一对应关系),根据需求添加方法定义。 注意事务定义。@Component @Transactional(readOnly = true) public class AccountManager { private UserDao userDao; public User getUser(Long id) { return userDao.findOne(id); } @Transactional(readOnly = false) public void saveUser(User entity) { userDao.save(entity); } }
Web Controller
4.1 写一个Controller负责List, Create, Delete。@Controller @RequestMapping(value = "/account/user") public class UserController { private AccountManager accountManager; @RequestMapping(value = { "list", "" }) public String list(Model model) { List<User> users = accountManager.getAllUser(); model.addAttribute("users", users); return "account/userList"; } @RequestMapping(value = "create") public String createForm(Model model) { model.addAttribute("user", new User()); return "account/userForm"; } @RequestMapping(value = "save") public String save(User user, RedirectAttributes redirectAttributes) { accountManager.saveUser(user); redirectAttributes.addFlashAttribute("message", "Create user " + user.getLoginName() + " success"); return "redirect:/account/user/"; } }
@Controller @RequestMapping(value = "/account/user/") public class UserDetailController { private AccountManager accountManager; @RequestMapping(value = "update/{id}") public String updateForm(Model model) { return "account/userForm"; } @RequestMapping(value = "save/{id}") public String save(@ModelAttribute("user") User user, RedirectAttributes redirectAttributes) { accountManager.saveUser(user); redirectAttributes.addFlashAttribute("message", "Modify user " + user.getLoginName() + " success"); return "redirect:/account/user/"; } @ModelAttribute("user") public User getAccount(@PathVariable("id") Long id) { return accountManager.getUser(id); } }
5. JSP
5.1 写一个List页面,一个Form页面, 参见mini-web。5.2 对关键页面流程应该编写Selenium功能测试用例。以上是关于springside的新工程在Eclipse中启动Tomcat,出错,NoClassDefFoundError, ServletContextListener的主要内容,如果未能解决你的问题,请参考以下文章