0

マッピングが機能しなくなり、理由がわからないため、セットアップがクラッシュしたと思います。これが私の web.xml、applicationContext.xml payment-servlet.xml、および payment.beans.xml です。

**web.xml**

     <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>

    <!-- Add Support for Spring -->
    <!-- Default applicationContext location: /WEB-INF/applicationContext.xml -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- exposes the request to the current thread -->
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>

     <!-- springapp payment servlet -->
            <servlet>
                <servlet-name>payment</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                    <init-param>
                        <param-name>contextConfigLocation</param-name>
                        <!--  <param-value>classpath:/spring/servlet/payment-servlet.xml</param-value> -->
                        <param-value>file:**/webapp/META-INF/spring/servlet/payment-servlet.xml</param-value>
                    </init-param>
                <load-on-startup>1</load-on-startup>
            </servlet>
            <servlet-mapping>
                 <servlet-name>payment</servlet-name>
                  <url-pattern>/payment/*</url-pattern> 
                  <url-pattern>/paymentExternalData</url-pattern>
                  <url-pattern>/paymentInternalData</url-pattern> 
            </servlet-mapping>

            <!-- Welcome files -->
            <welcome-file-list>
                 <welcome-file>payment.jsp</welcome-file>
                 <welcome-file>payment.html</welcome-file>
            </welcome-file-list>
        </web-app>

**applicationContext.xml**

    <context:annotation-config />

         <!--  payment servlet 
        <import resource="classpath:/spring/payment.beans.xml"/> -->
        <import resource="file:**/webapp/META-INF/spring/payment.beans.xml"/>

        <!-- Auto scan the components -->
        <context:component-scan 
            base-package="com.app.payment.model.PaymentUser" />

**payment-servlet**

    <!-- Auto scan the components -->
    <context:component-scan base-package="at.dt_i.primesign.payment" />

    <!-- Payment controller --> 
    <bean class="at.dt_i.primesign.payment.controller.PaymentController">
    </bean> 

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!-- PropertyPlaceholderConfigurer 
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" depends-on="configuration">
        <property name="properties" ref="configuration" />
    </bean> -->
    <bean 
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location">
            <value>/WEB-INF/configuration.properties</value>
        </property>
    </bean>

**payment.beans.xml**

    <context:annotation-config />
    <tx:annotation-driven /> 

    <bean id="paymentDao" class="com.app.payment.model.PaymentDAOImpl" />
    <bean id="paymentService" class="com.app.payment.PaymentServiceImpl" />

    <bean id="dataSource" 
             class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${database.driverClassName}" />
        <property name="url" value="${database.url}" />
        <property name="username" value="${database.username}" />
        <property name="password" value="${database.password}" />
    </bean>


    <bean id="paymentTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="paymentEntityManagerFactory" />
    </bean>

    <!-- -->
    <bean id="paymentJpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
        <property name="showSql" value="true" />
        <property name="generateDdl" value="${paymentJpaVendorAdapter.generateDdl}" />
        <property name="databasePlatform" value="${paymentJpaVendorAdapter.databasePlatform}" />
    </bean> 

    <bean id="paymentEntityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="profileDataSource" />
        <property name="jpaVendorAdapter" ref="paymentJpaVendorAdapter" />
        <property name="persistenceUnitName" value="payment" />
    </bean>

私の最初の質問: 私の構造は正しいですか、それともより良い解決策がありますか? 主な目標は、コントローラー メソッド /paymentInternalData および /paymentExternalData を操作することです。しかし、マッピングが機能していないため、dispatchServlet は別のものをロードすると思います。ウェルカム ページしか表示されません。2つのサブページではありません。

これは主にコードであることはわかっていますが、何を投稿すればよいかわからないため、すべてを投稿しました。うまくいけば、誰もが助けることができます。

4

1 に答える 1

1

サーブレットの URL パターンは正しいと思います:

             <servlet-mapping>
             <servlet-name>payment</servlet-name>
              <url-pattern>/payment/*</url-pattern> 
              <url-pattern>/paymentExternalData</url-pattern>
              <url-pattern>/paymentInternalData</url-pattern> 
            </servlet-mapping>

しかし

ファイル:**/webapp/META-INF/spring/servlet/payment-servlet.xml

payment-servlet.xml ファイルを読み込めません。META-INF が webapp ディレクトリの下にある場合、これを実行できます。

                <init-param>
                    <param-name>contextConfigLocation</param-name>
                    <!--  <param-value>classpath:/spring/servlet/payment-servlet.xml</param-value> -->
                    <param-value>/META-INF/spring/servlet/payment-servlet.xml</param-value>
                </init-param>

または init-param ブロックを削除し、payment-servlet.xml を web.xml が存在する webapp/WEB-INF/ ディレクトリの下に移動します。

于 2013-08-21T12:45:49.970 に答える