无法调用休息服务

时间:2013-07-27 14:50:29

标签: rest restful-url

我正在学习restfull,我已经从以下网址下载并部署了该示例。

http://fruzenshtein.com/spring-jpa-data-hibernate-mysql/您可以通过页面链接

从git hub下载源代码

我已经部署并部署了它而没有错误。

当我打电话给这个restfull时,它显示404.我正在使用以下网址来呼叫服务。

  http://127.0.0.1:8080/dpr-data/shop/create

我做错了什么。

任何人都可以看一下这个例子。我已将spring配置从java类移到xml。

  <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
   xmlns:tx="http://www.springframework.org/schema/tx" 
   xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans

    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/tx
     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<context:component-scan base-package="com.spr.controller" />
<context:component-scan base-package="com.spr.exception" />
<context:component-scan base-package="com.spr.init" />
<context:component-scan base-package="com.spr.model" />
<context:component-scan base-package="com.spr.repository" />
<context:component-scan base-package="com.spr.service" />
<context:component-scan base-package="com.spr.validation" />

<bean id="transactionManager"   class="org.springframework.orm.jpa.JpaTransactionManager"
    p:entityManagerFactory-ref="entityManagerFactory" />

<bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
    p:dataSource-ref="dataSource">
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
    </property>
    <property name="persistenceUnitName" value="medical-unit" />
    <property name="persistenceXmlLocation" value="/WEB-INF/persistence.xml" />
    <property name="jpaProperties">
        <props>
            <prop key="dss.hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="dss.hibernate.generate_statistics">false</prop>
            <prop key="dss.hibernate.cache.use_structured_entries">true</prop>
            <prop key="dss.hibernate.show_sql">true</prop>
            <prop key="dss.hibernate.format_sql">true</prop>
            <prop key="dss.hibernate.jdbc.batch_size">50</prop>
            <prop key="dss.hibernate.connection.username">root</prop>
            <prop key="dss.hibernate.connection.password">root</prop>
        </props>
    </property>
</bean>

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://127.0.0.1:3306/medicalstore" />
    <property name="username" value="root" />
    <property name="password" value="root" />
</bean>


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

    </bean>

<!-- Data Source Declaration 
<bean id="commonBasePooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
    destroy-method="close">

</bean>-->

部署工作完美,控制器正在启动,我已经在@postconstructor方法中放了一个日志,而日志正在打印。但是我无法从这项服务中获得结果。

1 个答案:

答案 0 :(得分:0)

看了这个例子,我注意到在POM中为项目定义的最终名称是:

<finalName>dpr-data</finalName>

注意,以'd'开头,而不是's'。

这将导致war文件dpr-data.war,并将部署到上下文根 dpr-data 。这意味着您应该使用以下URL访问该服务:

http://127.0.0.1:8080/dpr-data/shop/create