1

私はまだ頭の中でこのことを理解できません:

これは私のプロジェクトがどのように見えるかです:

--app
--app-core     (spring)
--app-model    (pojo)
--app-service  (jersey)  >> final package as war  (dependencies (appcore+appmodel))

ここで、applicationContext.xml をどこに配置する必要がありますか???? Spring の依存関係は app-core のみに行きます ???? ...

アップデート

app-core (spring) には applicationContext.xml があります。Tomcat (tomcat-maven-plugin) が組み込まれた JNDI を使用したいと考えています。

context.xml webapp/META-INF 内に作成すると、次のようになります:-

<?xml version='1.0' encoding='utf-8'?>
<Context docBase="nweb" path="/nweb" reloadable="true">  
<WatchedResource>WEB-INF/web.xml</WatchedResource>  
<Resource name="jdbc/TestDS" auth="Container"
        type="javax.sql.DataSource"
        driverClass="net.sourceforge.jtds.jdbc.Driver"
        url="jdbc:sqlserver://localhost:1433;DatabaseName=TestData"
        username="sa" password=""/>     
  </Context>

..

私のapplicationContext.xml: -

 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans   
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">

  <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:/TestDS"></property>
</bean>     
 </beans>

上記で、以下のエラーが発生します:

   at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
   Caused by: javax.naming.NameNotFoundException: Name TestDSis not bound in this 
    Context
    at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:152)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:154)
    at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:87)
    at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:152)
    at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:178)
    at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:95)
    at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105)
    at 

何か見逃している場合は何か提案はありますか?

4

5 に答える 5

2

通常、ルート アプリケーション コンテキストの web.xml で ContextLoaderListener を構成します。

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

このクラスは、param 値 contextConfigLocation を使用します。ここから、applicationContext.xml の場所を明示的に指定できます。

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:META-INF/spring/applicationContext*.xml</param-value>
</context-param>
于 2013-02-12T21:52:26.950 に答える
0

試す<property name="jndiName" value="java:comp/env/TestDS"></property>

于 2013-04-23T19:15:58.840 に答える
0

試す

  <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <configuration>
      <contextFile>webapp/META-INF/context.xml</contextFile>
    </configuration>
  </plugin>
于 2013-02-13T11:05:11.467 に答える