自从JFinal升级到1.5之后,项目采用Maven搭建。
但是最简单的demo都跑不起来,求在Maven中jfinal的启动,这个新增加的JFinalClassLoader具体该如何使用呢。
求文档,求demo。@jfinal
我的项目一切正常
同样jfinal1.5+maven 使用JFinal.start启动不起来,貌似是jetty版本问题,无奈使用eclipse插件run-jetty-run插件来运行项目
JFinal 1.6 发布后会提供一个maven demo供下载
回复:)
关键在于 pom.xml 配置,给你一个可用的配置做参考,JFinal 1.6 版本的 demo 会给出 maven版本:
<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.jfinal</groupId> <artifactId>demo</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>demo Maven Webapp</name> <url>http://maven.apache.org</url> <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties> <build> <sourceDirectory>${project.basedir}/src</sourceDirectory> <scriptSourceDirectory>${project.basedir}/scripts</scriptSourceDirectory> <testSourceDirectory>${project.basedir}/test</testSourceDirectory> <outputDirectory>${project.basedir}/web/WEB-INF/classes</outputDirectory> <testOutputDirectory>${project.basedir}/web/WEB-INF/test-classes</testOutputDirectory> <resources> <resource> <!-- directory>${project.basedir}/resources</directory --> <directory>${project.basedir}/src</directory> <excludes><exclude>**/*.java</exclude></excludes> </resource> </resources> <testResources> <testResource> <directory>${project.basedir}/test/resources</directory> <excludes><exclude>**/*.java</exclude></excludes> </testResource> </testResources> <!-- directory>${project.basedir}/target</directory --> <directory>${project.basedir}/web/WEB-INF/target</directory><!-- very important --> <finalName>demo</finalName> </build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.jfinal</groupId> <artifactId>jetty-server</artifactId> <version>8.1.8</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal</artifactId> <version>1.5</version> </dependency> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> <dependency> <groupId>com.jfinal</groupId> <artifactId>cos</artifactId> <version>26Dec2008</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.16</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.20</version> </dependency> <!-- 有新 jar 包加入就在下面添加 dependency --> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.7.3</version> </dependency> <!-- end --> </dependencies> </project>
注意一下 sourceDirectory、outputDirectory等等几个路径的配置,我是将其配置成了自己习惯的路径,与默认的配置不同
@jfinal
折腾 Ok了 么?没OK我发一个demo给你!
JFinal 是按照 JFinal.start(..)方法中的参数来启动项目的, pom.xml中的配置只有 jar 依赖对 jfinal 是有影响的,所以重点注意 JFinal.start(...) 方法中的第一个参数即可
还是存在问题,首先我按照maven文件结构的标准配置了build部分。
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory> <scriptSourceDirectory>${project.basedir}/src/main/webapp</scriptSourceDirectory> <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory> <outputDirectory>${project.basedir}/target/classes</outputDirectory> <testOutputDirectory>${project.basedir}/target/test-classes</testOutputDirectory> <resources> <resource> <directory>${project.basedir}/src/main/resources</directory> <excludes> <exclude>**/*.java</exclude> </excludes> </resource> </resources> <testResources> <testResource> <directory>${project.basedir}/src/test/resources</directory> <excludes> <exclude>**/*.java</exclude> </excludes> </testResource> </testResources> <directory>${project.basedir}/target</directory><!-- very important --> <finalName>everdata</finalName>
启动方式采用:
JFinal.start("src/main/webapp", 9090, "/", 10);
问题1:出现无法找到resource包下面的配置文件,日志显示,jfinal是在src/main/webapp/WEB-INF 下面找。而上面的pom配置是配置了resource的directory目录的。
为了检查后面的错误,copy了配置文件到WEB-INFO下面,再次启动。出现错误:file serach error:E:WorkspaseWeTeamEverDataCentersrcmainwebappWEB-INFlib is not a dir!
由此我发现Jfinal根本没有按照pom配置的Directory来读取配置等信息,而是跟JFinal.start();里面的这个路径有关,于是我改成
JFinal.start("target", 9090, "/", 10);
启动成功,日志没有报错,但好像JFinal并没有加载成功资源文件和配置等等。
访问都是404或者403,找不到Controller等等。
由此而来,maven项目下启动JFinal还是终告失败,继续求指点,让我们在Maven项目下使用JFinal少走弯路。@jfinal
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(12)
我的项目一切正常
同样jfinal1.5+maven 使用JFinal.start启动不起来,貌似是jetty版本问题,无奈使用eclipse插件
run-jetty-run插件来运行项目
JFinal 1.6 发布后会提供一个maven demo供下载
回复
:)
关键在于 pom.xml 配置,给你一个可用的配置做参考,JFinal 1.6 版本的 demo 会给出 maven版本:
注意一下 sourceDirectory、outputDirectory等等几个路径的配置,我是将其配置成了自己习惯的路径,与默认的配置不同
@jfinal
折腾 Ok了 么?没OK我发一个demo给你!
@jfinal
关键在于 pom.xml 配置,给你一个可用的配置做参考,JFinal 1.6 版本的 demo 会给出 maven版本:
注意一下 sourceDirectory、outputDirectory等等几个路径的配置,我是将其配置成了自己习惯的路径,与默认的配置不同
@jfinal
JFinal 是按照 JFinal.start(..)方法中的参数来启动项目的, pom.xml中的配置只有 jar 依赖对 jfinal 是有影响的,所以重点注意 JFinal.start(...) 方法中的第一个参数即可
还是存在问题,首先我按照maven文件结构的标准配置了build部分。
启动方式采用:
问题1:出现无法找到resource包下面的配置文件,日志显示,jfinal是在src/main/webapp/WEB-INF 下面找。而上面的pom配置是配置了resource的directory目录的。
为了检查后面的错误,copy了配置文件到WEB-INFO下面,再次启动。出现错误:file serach error:E:WorkspaseWeTeamEverDataCentersrcmainwebappWEB-INFlib is not a dir!
由此我发现Jfinal根本没有按照pom配置的Directory来读取配置等信息,而是跟JFinal.start();里面的这个路径有关,于是我改成
启动成功,日志没有报错,但好像JFinal并没有加载成功资源文件和配置等等。
访问都是404或者403,找不到Controller等等。
由此而来,maven项目下启动JFinal还是终告失败,继续求指点,让我们在Maven项目下使用JFinal少走弯路。@jfinal