当前位置: 首页 > 知识库问答 >
问题:

如何在eclipse中让项目在服务器上运行

侯善
2023-03-14

我是Spring Boot的新手,我的EclipseIDE中有Spring启动代码示例。

现在来运行这个项目。在项目中有一个“应用程序”类,我使用作为Java应用程序运行,然后它在给定的端口上运行。

但我希望它使用Eclipse的RunonServer选项运行,所以每当我尝试在服务器上运行它时,它都会给我404。

请给我任何想法来解决这个问题。

代码:

@ComponentScan
@Configuration
@EnableAutoConfiguration
public class Application extends SpringBootServletInitializer {

@Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(Application.class);
        }

    public static void main(String[] args) {
        ApplicationContext ctx = SpringApplication.run(Application.class, args);

        System.out.println("Let's inspect the beans provided by Spring Boot:");
        String[] beanNames = ctx.getBeanDefinitionNames();
        Arrays.sort(beanNames);
        System.out.println(Arrays.toString(beanNames));
    }
}

应用程序.属性

server.address=localhost
server.port=8080
server.contextPath=/spring-security-cas
app.service.security=http://localhost:8080/j_spring_cas_security_check
app.service.home=http://localhost:8080/

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>org.esco.demo</groupId>
    <artifactId>spring-security-cas</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>demo-spring-security-cas</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>1.2.1.RELEASE</version>
        <relativePath />
    </parent>

    <dependencies>
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-cas</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-taglibs</artifactId>
    </dependency>
    <!-- Usefull for accessing to jsp -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- END Usefull for accessing to jsp -->
        <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.14.8</version>
    </dependency>
</dependencies>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <start-class>org.esco.demo.ssc.Application</start-class>
        <java.version>1.7</java.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

注意:当以Java应用程序的形式运行应用程序时,项目正在运行,问题是我希望它使用服务器上运行选项运行。

共有2个答案

刘琨
2023-03-14

你是说eclipse上的tomcat实例吗?日志在说什么?没有部署应用程序?

那么你需要对tomcat发动一场战争-

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file

改变-

 <packaging>jar</packaging>

<packaging>war</packaging>

它应该有效。

从光启
2023-03-14

如果要将其部署到容器中,而不是使用嵌入式容器,请遵循《参考指南》中的这一节。

简言之,步骤如下:

  1. 使用战争包装代替罐装包装
  2. 让你的应用程序类扩展 SpringBootServletInitializer 并实现 configure 方法。
  3. 将容器依赖项(我猜是 tomcat)标记为提供

所以简单来说

>

  • 更改<代码>

    public class Application extends SpringBootServletInitializer {
        ...
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(Application.class);
        }
    }
    

    将tomcat依赖项添加为提供的

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifcatId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    

    有关详细信息,请参阅参考指南。

  •  类似资料:
    • 我的机器上有Java8(JDK和JRE8)。我有日食火星4.5.1。我试图创建一个简单的静态Web项目,在HTTP Preview上运行该项目(或者在Apache Tomcat上运行动态Web项目)时,出现以下错误。(另见所附截图) 线程“main”java.lang.unsupportedClassVersionError:org/eclipse/jetty/server/handler:不支持

    • 上周,我们的团队决定从Netbean迁移到Eclipse,因为我们开发了一些只能在Eclipse上运行的新插件。 首先,项目开始使用来自pom的my maven插件

    • 如何将LocalHostLaravel项目放在GoDaddy服务器上 我有一个PHP7项目,MySQL在我的“localhost/laravel/public”路径上运行良好。 现在我想把这个工作项目在GoDa服务器上使用FileZilla。如何和在哪里我应该把哪些文件,以便它应该像我的localhost?一样运行 我的其他普通PHP编码文件(例如.PHP)已经在GoDaddy服务器上运行良好。但

    • 问题内容: 有没有人在PyCharm Community Edition中为Django项目设置调试配置时遇到问题?IDE的Community Edition在项目设置中缺少项目类型选项,然后在我设置Debug或Run config时,它要求我提供应该运行的脚本。对于Django,manage.py是什么脚本?提前致谢 问题答案: 是的你可以。 在运行->编辑配置中创建新配置 [+] / Pyth

    • 我让AWS使用这个AMI-80347097从Realm网站运行AMI服务的实例。所以我现在有了EC2实例,但我不知道下一步该做什么。对不起,我对这类事情一无所知。 AWS实例的服务器URL是什么?对象服务器的管理员访问令牌是否仍然相同?或者我必须在EC2实例中做一些特定的事情?TT. TT 编辑:好的,我让对象仪表板实际工作,我可以登录。非常感谢你在这方面帮助我。我的最后一步实际上是连接到对象服务

    • 我在eclipse中创建了一个新服务器,但后来由于某种原因删除了它,现在我无法创建一个新服务器。我得到了Apache Tomcat7,但是当我从列表中选择Tomcat v7服务器时,服务器名称字段是不可编辑的,而且按钮也不工作(完成,下一步)。