今天试一下Java调用Oracle来看一下。会不会也如昨天实验的一样坑呢?由于我对于Java也接触的不多,所以不打算直接使用该收提供的实验文档,而是自己利用Maven+Struts+Spring来自己实验一遍。
CMD中输入
G:Javaworkspace>mvn archetype:generate -DgroupId=com.vanceinfo.mavenstudy -DartifactId=struts2oracle -DarchetypeArtifactId=maven-archetype-webapp
G:Javaworkspacestruts2oracle>mvn eclipse:eclipse
然后用eclipse打开struts2oracle
POM中添加依赖引用如下:
<!-- Struts 2 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.3.15</version> </dependency> <!-- Spring framework --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.2.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.2.3.RELEASE</version> </dependency> <!-- Struts 2 + Spring plugins --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.15</version> </dependency> </dependencies>
为了添加oracle的驱动,我先在官网上看到最新的版本是14,http://search.maven.org/#search%7Cga%7C1%7Cojdbc,可是我添加之后,老是提醒我说error in opening zip file when running maven,将.m2里面的ojdbc的文件夹删掉了也无法获得成功,最后没有办法,只好将ojdbc6.jar复制到我的本地G盘,然后执行
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=6 -Dpackaging=jar -Dfile=g:ojdbc6.jar
在POM.xml中加入
<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>6</version> </dependency>
这才得到mvn eclipse:eclipse成功。接下来使用mvn clean install的时候,再次出现了问题产javax.servlet不存在,实在是不在行Java,只好google一番,得到答案说是要将%tomcat%/common/lib目录下的servlet-api.jar添加到%java_home%//jdk1.7.0_09/jre/lib/ext目录下面即可解决,我照做了,并且重启eclipse了,问题得到解决。新看到JRE System Library引用如图示
做了以上这些操作之后,mvn clean install是可以编译通过的。但我不想使用tomcat这个玩意,想用jetty run的方式来跑,于是我在POM中加入:
<pluginManagement> <plugins> <plugin > <groupId> org.mortbay.jetty</groupId > <artifactId> maven-jetty-plugin</artifactId > </plugin > </plugins > </pluginManagement>
最后运行mvn jetty:run之后,直接在浏览器中输入http://localhost:8080/struts2oracle/main.html就可以看到想看到的画面了。
接下来可能会有一些oracle的相关的连接问题了,发现只有添加学生的页面是正确显示的。所以我们需要调试就好。设定调试,就是加入环境变量
MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
网上有有些人贴出这个值应该是:-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n,多了两个参数,即-Xnoagent 和-Xjava.compiler=NONE.
然后如果运行时出现了端口号的话,一般就ok了,不过我在我的64位机器上设两个参数,打断点后都没有出现小老鼠尾巴。各种纠结中....调试中....。