【问题标题】:not able to call restfull services无法调用宁静的服务
【发布时间】:2013-07-28 00:44:14
【问题描述】:

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

http://fruzenshtein.com/spring-jpa-data-hibernate-mysql/U 可以在页面链接中从 git hub 下载源码

我已经部署并且它的部署没有错误。

当我调用这个 restfull 时,它显示 404。我正在使用以下 url 调用服务。

  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>-->

Deploy 运行良好,控制器正在启动,我在@postconstructor 方法中放置了一个日志,并且正在打印日志。但我无法从这项服务中获得结果。

【问题讨论】:

  • 在部署服务时是否检查过服务器日志是否有异常?
  • 日志中没有异常

标签: rest restful-url


【解决方案1】:

查看示例后,我注意到在 POM 中为项目定义的最终名称是:

<finalName>dpr-data</finalName>

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

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

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

【讨论】:

  • 是的,我正在使用 dpr-data ,但导致无法填充 :(
  • 您的原始帖子指出您正在使用上下文根spr-data
  • 对不起,那是我的打字错误:(
  • 我用下面的方法测试它 @PostConstruct public void test() { System.out.println("on the way");尝试 { shopService.delete(1); } catch (ShopNotFound e) { System.out.println("删除错误"); e.printStackTrace(); } } postconstruct 正在删除数据,调用服务有问题
  • 那么 test() 方法有效吗?是删除数据吗?如果是这样,您指的是什么问题?
猜你喜欢
  • 2015-01-07
  • 1970-01-01
  • 2014-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多