首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat 8+ Maven + Java 7 Web配置文件

Tomcat 8+ Maven + Java 7 Web配置文件
EN

Stack Overflow用户
提问于 2014-11-09 21:43:12
回答 1查看 3.2K关注 0票数 1

我正在尝试使用Tomcat 8作为新web应用程序的服务器。我将使用许多java 7 web配置文件技术,其中包括EJB规范。

实际上,web应用程序项目由其他几个maven项目组成。我有一个rest-api项目(它使用JAX-RS2.0)、一个业务项目(目前打包为jar)和域项目(也是一个jar)。我有一些公共依赖项,我将它们打包在单独的模块“公共-deps”(pom包)中。在这些依赖项中,有java 7 web配置文件规范。所有其他项目都依赖于“公共部门”项目。

接下来是公共deps项目的pom.xml:

代码语言:javascript
复制
    <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/xsd/maven-4.0.0.xsd">

      <modelVersion>4.0.0</modelVersion>
      <groupId>....</groupId>
      <artifactId>commons-deps</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>pom</packaging>
      <name>Common dependencies</name>

      <properties>
        <cdi.version>1.1</cdi.version>
        <sl4j.version>1.7.7</sl4j.version>
        <log4j.version>1.2.17</log4j.version>
        <junit.version>4.11</junit.version>
      </properties>

      <dependencies>

      <dependency> 
           <groupId>javax</groupId>   
            <artifactId>javaee-web-api</artifactId>   
            <version>7.0</version>
            <scope>provided</scope> 
      </dependency> 
  <!--  
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <version>${cdi.version}</version>
        <scope>provided</scope>
    </dependency> 
  -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${sl4j.version}</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${sl4j.version}</version>
    </dependency>

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
    </dependency>

    <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>${junit.version}</version>
         <scope>test</scope>
     </dependency>
  </dependencies>

</project>

问题是,当我尝试使用@无状态注释创建无状态会话bean时,将找不到这个注释。我不知道为什么不应该提供范围?但据我所知,tomcat 8应该支持这份档案.也许是因为我缺少了一些java的具体实现?如果确实如此,我应该为java配置文件中的每个api指定实现吗?另外,我应该为ejb选择什么实现?

我到处搜索,但是我找不到任何关于用tomcat 8开发java ee 7 web应用程序的教程,而且由于我对java ee堆栈(来自Spring)还不熟悉,我肯定做错了什么。我用Eclipse露娜作为IDE。

对不起,我的英语很差!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-09 22:14:37

好吧,我现在知道发生了什么。看来,具有提供范围的依赖项不能是传递的,这正是我所希望的!(Can Maven's provided scoping, be transitive?)

不管怎样,谢谢!!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26833669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档