2008-10-10 6 views
1

모든 것들은 Windows XP Pro SP2/32 비트에서 실행됩니다.oracle JDBC 소스를 사용하기 위해 Jetty 7 pre3을 어떻게 설정해야합니까?

http://dist.codehaus.org/jetty/jetty-7.0.0-prereleases/jetty-7.0.0pre3/jetty-assembly-7.0.0pre3.zip>dist.codehaus에서 Jetty 7 pre3을 다운로드했습니다. .org.
나는 C:\jetty-7.0.0pre3\에 부두를 추출했다 (그래서 나는 C가 : \ 부두 - 7.0.0pre3의 \ 빈 \ 및 기타 DIRS)
나는 내 web.xml 파일에서 나는 자원 심판이

C:\jetty-7.0.0pre3\webapps\에 내 웹 애플리케이션을 뒀다 : jetty.xml의에서

<resource-ref> 
    <description>dev datasource</description> 
    <res-ref-name>jdbc/dev</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 

와 한 구성 :

<Array id="plusConfig" type="java.lang.String"> 
    <Item>org.mortbay.jetty.webapp.WebInfConfiguration</Item> 
    <Item>org.mortbay.jetty.plus.webapp.EnvConfiguration</Item> 
    <Item>org.mortbay.jetty.plus.webapp.Configuration</Item> 
    <Item>org.mortbay.jetty.webapp.JettyWebXmlConfiguration</Item> 
    <Item>org.mortbay.jetty.webapp.TagLibConfiguration</Item> 
</Array> 

<New id="dev" class="org.mortbay.jetty.plus.naming.Resource"> 
    <Arg>jdbc/dev</Arg> 
    <Arg> 
    <New class="oracle.jdbc.pool.OracleConnectionPoolDataSource"> 
     <Set name="User">username</Set> 
     <Set name="URL">jdbc:oracle:thin:@10.201.201.64:1521:DEV</Set> 
     <Set name="Password">password</Set> 
    </New> 
    </Arg> 
</New> 

<Call name="addLifeCycle"> 
    <Arg> 
    <New class="org.mortbay.jetty.deployer.WebAppDeployer"> 
     <Set name="contexts"><Ref id="Contexts"/></Set> 
     <Set name="webAppDir"><SystemProperty name="jetty.home" default="."/>/webapps</Set> 
     <Set name="parentLoaderPriority">false</Set> 
     <Set name="extract">true</Set> 
     <Set name="allowDuplicates">false</Set> 
     <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set> 
     <Set name="ConfigurationClasses"><Ref id="plusConfig"/></Set> 
    </New> 
    </Arg> 
</Call> 

나는 C:\jetty-7.0.0pre3\에서 java -DOPTION=plus -jar start.jar을 실행 그리고 난 뻥 g 다음 오류 :

2008-10-14 12:12:49.163::INFO: Logging to STDERR via org.mortbay.log.StdErrLog 
2008-10-14 12:12:49.413::WARN: Config error at <New id="dev" class="org.mortbay.jetty.plus.naming.Resource"><Arg>jdbc/dev</Arg><Arg> 
    <New class="oracle.jdbc.pool.OracleConnectionPoolDataSource"><Set name="User">username</Set><Set name="URL">jdbc:oracle:thin:@10.201.201.64:1521:DEV</Set><Set name="Password">password</Set></New> 
    </Arg></New> 
2008-10-14 12:12:49.413::WARN: EXCEPTION 
java.lang.ClassNotFoundException: org.mortbay.jetty.plus.naming.Resource 
     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 java.lang.ClassLoader.loadClass(Unknown Source) 
     at org.mortbay.util.Loader.loadClass(Loader.java:91) 
     at org.mortbay.xml.XmlConfiguration.nodeClass(XmlConfiguration.java:224) 
     at org.mortbay.xml.XmlConfiguration.newObj(XmlConfiguration.java:572) 
     at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:256) 
     at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:214) 
     at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:971) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at org.mortbay.start.Main.invokeMain(Main.java:218) 
     at org.mortbay.start.Main.start(Main.java:564) 
     at org.mortbay.start.Main.main(Main.java:136) 

C:\jetty-7.0.0pre3\lib\plus\jetty-plus-7.0.0pre3.jar이 클래스 경로에 있습니다. 같은 콘솔에서 :

C:\jetty-7.0.0pre3>set classpath 
CLASSPATH=C:\Program Files\IBM\WebSphere MQ\Java\lib\providerutil.jar;C:\Program 
Files\IBM\WebSphere MQ\Java\lib\com.ibm.mqjms.jar;C:\Program Files\IBM\WebSpher 
e MQ\Java\lib\ldap.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\jta.jar;C:\Pro 
gram Files\IBM\WebSphere MQ\Java\lib\jndi.jar;C:\Program Files\IBM\WebSphere MQ\ 
Java\lib\jms.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\connector.jar;C:\Pro 
gram Files\IBM\WebSphere MQ\Java\lib\fscontext.jar;C:\Program Files\IBM\WebSpher 
e MQ\Java\lib\com.ibm.mq.jar;.;c:\Program Files\Java\jdk1.5.0_05\classes;C:\Prog 
ram Files\Java\jre1.5.0_05\lib\ext\QTJava.zip;C:\Program Files\Java\jre1.5.0_05\ 
lib\spring.jar;c:\jetty-7.0.0pre3\lib\plus\jetty-plus-7.0.0pre3.jar 

무엇이 잘못 되었습니까? start.jar의 표시 영역에 org.mortbay.jetty.plus.naming.Resource을 어떻게 추가해야합니까?

답변

2

문제는 addLifeCycle이 Resource 개체를 사용하지 않는다는 것입니다. WebAppContext 또는 WebAppDeployer과 같은 LifeCycle 구현이 필요합니다.

당신이 당신의 jetty.xml의에서 설정 WebAppDeployer (또는 동급)가 가정하면,이 시도 : 당신은 단지 특정 웹 애플리케이션에 대한 소스를 원하는 경우

<Array id="plusConfig" type="java.lang.String"> 
    <Item>org.mortbay.jetty.webapp.WebInfConfiguration</Item> 
    <Item>org.mortbay.jetty.plus.webapp.EnvConfiguration</Item> 
    <Item>org.mortbay.jetty.plus.webapp.Configuration</Item> 
    <Item>org.mortbay.jetty.webapp.JettyWebXmlConfiguration</Item> 
    <Item>org.mortbay.jetty.webapp.TagLibConfiguration</Item> 
</Array> 

<Call name="addLifeCycle"> 
    <Arg> 
    <New class="org.mortbay.jetty.deployer.WebAppDeployer"> 
     .... 
     <Set name="ConfigurationClasses"><Ref id="plusConfig"/></Set> 
     .... 
    </New> 
    </Arg> 
</Call> 


<New id="dev" class="org.mortbay.jetty.plus.naming.Resource"> 
    <Arg>jdbc/dev</Arg> 
    <Arg> 
    <New class="oracle.jdbc.pool.OracleConnectionPoolDataSource"> 
     <Set name="User">username</Set> 
     <Set name="URL">jdbc:oracle:thin:@10.201.201.64:1521:DEV</Set> 
     <Set name="Password">password</Set> 
    </New> 
    </Arg> 
</New> 

는 다음 부두 내에서 유사한 구성을 해당 webapp의 -env.xml 파일

또한 Jetty 7을 사용 중이므로 (선택 사항) plus 라이브러리를로드해야합니다 (exe가 이미 수행하고 있지 않은 경우). 시작할 때 ClassNotFoundException을 얻을 것이므로로드되지 않고 있음을 알 수 있습니다. 리눅스에 부두를 시작

, 정말처럼 할 것 :

java -DOPTIONS=plus -jar start.jar 

을 그러나, 나는 윈도우에 익숙하지 않다. 가능하게

Jetty-Service.exe -DOPTIONS=plus 

가 작동할까요? 그렇지 않다면 부두를 실행할 때 "OPTIONS"시스템 속성을 "plus"로 설정하는 무언가를 찾으십시오.

관련 문제