我知道这可能听起来很愚蠢但是我无法理解mvn spring-boot:run
和java -jar
(.jar文件使用mvn install生成的)之间的区别
我有一个带有jsp页面的spring boot应用程序/src/main/resources/META-INF/resources/WEB-INF/
.如果我使用mvn spring-boot:run
这些页面是服务的.但是,如果我使用java -jar
这些页面的应用程序找不到.
我正在处理的应用程序位于https://github.com/ArslanAnjum/angularSpringApi
更新:它适用于spring boot 1.4.2.RELEASE,而我打算使用最新版本,即1.5.8.RELEASE.
更新:我解决了这个问题,将jsps放在src/main/webapp/WEB-INF/views /中,并将包装类型更改为war,然后使用java -jar target/myapp.war运行此war并立即正常工作.
我正在使用 maven 创建一个 spring mvc 应用程序。它使用 WebApplicationInitializer 进行初始化。现在我正在尝试添加休眠依赖项。当我添加它时,不会调用 WebApplicationInitializer 的 onStartup。我正在使用 tomcat 7。即使我删除了 hibernate 依赖项并更新项目,问题仍然存在。可能是什么问题?
pom.xml
<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.pdma</groupId>
<artifactId>dmapp</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>dmapp Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.framework.version>4.3.1.RELEASE</spring.framework.version>
<jackson-version>2.7.5</jackson-version>
<javax-servlet-api-version>3.1.0</javax-servlet-api-version>
<javax-servlet-jstl-version>1.2</javax-servlet-jstl-version>
<maven-compiler-plugin-version>3.2</maven-compiler-plugin-version>
<maven-war-plugin-version>2.4</maven-war-plugin-version>
<source-jdk>1.7</source-jdk>
<target-jdk>1.7</target-jdk>
<war-source-directory>src/main/webapp</war-source-directory>
<war-name>dmapp</war-name>
<final-name>dmapp</final-name>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.framework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.framework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.framework.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.6.Final</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${javax-servlet-api-version}</version> …
Run Code Online (Sandbox Code Playgroud) 我有一个 Questions 实体,其中包含以下选项列表:
@OneToMany(mappedBy = "question")
List<Option> options;
Run Code Online (Sandbox Code Playgroud)
在选项实体中,我将关系指定为:
@ManyToOne
@JoinColumn(name="question_id")
Question question;
Run Code Online (Sandbox Code Playgroud)
当我点击时/api/questions
,它工作正常,但当我点击时/api/questions/1
,它给出 java.lang.StackOverflowError: null
我究竟做错了什么?
如果我在 Lambda 中创建一个单例实例,并将 lambda 超时设置为 30 秒。下次调用时,如果使用相同的容器,我会获得相同的单例实例还是新的单例实例。我正在 lambda 处理程序中创建这个单例,并且使用 python。
我正在 AWS Lambda 上测试 SQL Alchemy。引擎和会话位于单例中。根据观察到的行为,我的问题是为什么在 AWS Lambda 中,即使 Lambda 超时,SQL Alchemy 会话仍然存在。
为了测试该会话仍然存在,我使用了以下步骤:
使用 postgres 作为数据库,我启动了一个事务并运行了删除查询,但没有提交也没有回滚它。在workbenchJ中做了这个。
现在我调用了 lambda,并在 lambda 中对同一个表运行选择查询。
由于在 postgres 中 select 和 drop 不能同时运行,所以现在您可以检查 select 语句正在等待 drop 查询获取的锁。
我有一个将会话超时设置为1小时的应用程序。但是我不希望用户关闭浏览器然后再次打开它,而必须再次登录。为此,我需要一种方法以某种方式刷新每个请求的cookie到期时间。
我正在使用具有弹簧安全性的弹簧靴。如何实现此功能。
我正在使用 firebase,并且有一个应用程序需要向所有用户发送通知。因此,为了实现这一目标,我创建了一个主题 allUsers,每个设备都订阅该主题。现在,如果我向该主题发送推送通知,每个设备都会收到它。我想排除一台设备,该设备间接向 /topics/allUsers 创建推送通知。
这可以实现吗?
spring ×4
aws-lambda ×2
python ×2
spring-boot ×2
android ×1
firebase ×1
hibernate ×1
jsp ×1
maven ×1
sqlalchemy ×1