我正在使用maven构建restful应用程序,用于从mysql中选择数据。我对POM配置感到非常困惑,如下所示:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tutorialacademy.rest</groupId>
<artifactId>helloworld</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>helloworld Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
<id>maven2-repository.java.net</id>
<name>Java.net Repository for Maven</name>
<url>http://download.java.net/maven/2/</url>
<layout>default</layout>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>html" target="_blank">junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.3</version>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20080701</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.6.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
而我的多个软件包如下所示:
问题是我是否需要为每个包添加另一个groupid和artifactid。当我访问路径http://localhost:8080/helloworld/rest/exportfile/json它在com.tutorialacademy.rest包类下被编码为@path时,它确实有效:
但是当我访问webService包下的路径http://localhost:8080/helloworld/rest/helloService/hello/。这给了我错误:
The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
我的web.xml如下:
<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.tutorialacademy.rest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.tutorialacademy.rest</param-value>
</init-param>
参数-value列出了应该扫描带有@Path
注释的类的包,以便泽西可以注册这些类。您只列出了一个您说有效的包。您可以在用逗号分隔的包上添加更多
<param-value>
com.tutorialacademy.rest,
webService
</param-value>
尽管通常的做法是为您的项目提供顶级软件包。例如
com.foo
com.foo.dao
com.foo.model
com.foo.resources
递归扫描您在param值中列出的包。所以你可以直接使用com。在这种情况下,所有子包也会被扫描。
我使用的是maven版本3.5.3,在构建项目时,我在WEB-INF(V3.1和V3.4)中获得了两个版本的apache commons-lang3,即使我在父pom.xml的“依赖关系管理”中明确指定了V3.4。 两者都具有相同的groupId和ArtifacTID。 我很困惑。这是Maven的预期行为吗?这种情况是在什么情况下发生的?我的印象是,如果依赖项具有相同的groupId和Artifa
我试图有多个消费者的Kafka主题的多个分区与相同的groupId,这将帮助我扩大消费的消息。 根据Kafka的文件,它说: 如何让多个消费者拥有相同的消费者groupId,以实现负载平衡?
我在Spring Boot中的资源类路径位置中有多个yml文件,就像下面的Spring Boot结构一样。起初,我只为abc的申请而写。当时,这个文件的所有值都加载到了相应的类中,但是当我添加到另一个文件应用程序xyz时。然后,yml也会加载到相应的配置类中,但此时只加载应用程序xyz的值。两个配置类中的yml。因此,需要帮助在单个构建中配置相应配置文件中两个文件的值: 申请内容abc。yml a
问题内容: 使用原生(ES6)Promise。我应该以错误拒绝: 还是我应该拒绝一个字符串: 浏览器行为有什么区别? 问题答案: 是的,绝对可以。字符串不是错误,通常当您遇到错误时,这意味着出了点问题,这意味着您将真正享受良好的堆栈跟踪。没有错误-没有堆栈跟踪。 就像try / catch一样,如果您添加到抛出拒绝中,则希望能够记录堆栈跟踪,而抛出字符串会为您带来麻烦。 我在移动设备上,因此答案很
在我们的项目中,我们有用于 REST 层、EJB 层和域(实体)层的单独模块。 以下是对 REST 层的依赖关系: 问题1:提供了所有这些?有可能简化吗?所有这些依赖项都应该显式声明吗?如果没有,RestEasy默认提供了什么?事实上,我使用的是JBoss AS 6,因此这些依赖项仅用于编译时。它们的范围是。 同样适用于我们的域层: 问题2:为什么在我们的pom中明确声明了这些。xml?hiber
假设双方之间有一份合同,允许根据某些业务逻辑将一些资金(最初与我一起)转移给双方,例如80%的资金转移给a,20%的资金转让给B。现在,对于不同的一方对X,这些百分比是不同的