需要帮助安装和运行spring petcare示例应用程序

时间:2014-01-30 23:37:51

标签: java eclipse spring maven xsd

我需要帮助使用egit和m2e插件在我的eclipse / tomcat安装中运行the spring PETCARE application,我已经没有在我的机器上安装了这些插件。请注意,这是 NOT spring petclinic应用程序。以下是我到目前为止所做的事情:

1.) I downloaded the spring PETCARE sample into eclipse kepler  
    using the eclipse egit plugin
2.) I then converted it to a maven project in eclipse and did  
    a maven update using the m2e plugin.  

问题是我在文件src/main/resources/META-INF/spring/appServlet/servlet-context.xml中收到以下错误,表示找不到petcare:resources

Multiple annotations found at this line:
    - schema_reference.4: Failed to read schema document 'http://www.springframework.org/schema/petcare/spring-petcare-3.0.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.
    - cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'petcare:resources'.

我找到this posting,然后将spring.schemas文件放在我的eclipse项目的路径myproject/src/main/resources/META-INF/spring.schemas中。

spring.schemas仅包含以下一行代码:

http\://www.springframework.org/schema/petcare/spring-petcare-3.0.xsd=org/springframework/samples/petcare/util/config/spring-petcare-3.0.xsd  

有谁能告诉我如何解决这个问题,以便解决错误信息,我的应用程序可以编译?

如果使用egit和m2e插件将应用程序下载并安装到eclipse中,即使是明确的逐步说明就足够了。我们可以从头开始正确而不是从我目前得到的错误中回溯。


注意:除了接受的答案的内容之外,我还需要确保eclipse使用JDK而不是JRE才能使应用程序在eclipse中使用Run成功启动As ..Run on Server。

1 个答案:

答案 0 :(得分:2)

petcare命名空间的问题在于它不能通过遵循架构位置URL在线获得。

Spring在运行时使用spring.schemas文件解决了这个问题,但是eclipse不知道这个文件,也不知道如何使用它来查找XSD。解决方案是使用XML Catalog在eclipse中手动配置petcare命名空间。

转到“首选项”,然后在“XML目录”部分中配置命名空间,如下所示:

enter image description here

在位置中将完整的硬盘路径放到xsd文件spring-petcare-3.0.xsd,选择密钥类型Schema location,然后输入密钥作为XSD的完整网址:http://www.springframework.org/schema/petcare/spring-petcare-3.0.xsd

要确认它是否有效,请右键单击servlet-context.xml文件,然后单击“验证”。该文件不应再为红色。

这是应用程序外观运行的示例: enter image description here

这是访问它的URL:

http://localhost:20010/users/signin

要运行它,请执行以下步骤:

在webapp / META-INF

中创建名为context.xml的文件
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/"/>
  • 将其添加到build / plugins部分的pom.xml中:

        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <configuration>
                <port>20010</port>
                <path>/</path>              
            </configuration>
        </plugin>   
    
  • 从命令行运行应用程序:

    mvn clean install tomcat7:run-war -Dmaven.test.skip = true

运行日志:

INFO : org.springframework.integration.endpoint.EventDrivenConsumer - started org.springframework.integration.config.ConsumerEndpointFactoryBean#2
INFO : org.springframework.integration.endpoint.EventDrivenConsumer - started doctorMail.adapter
INFO : org.springframework.context.support.DefaultLifecycleProcessor - Starting beans in phase 0
INFO : org.springframework.web.servlet.DispatcherServlet - FrameworkServlet 'appServlet': initialization completed in 1661 ms
Feb 05, 2014 12:11:01 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-20010"]
  • 使用上面的网址

  • 访问该应用程序
  • 您可以在eclipse中创建maven启动配置,将其作为maven任务启动