小编ygl*_*odt的帖子

macOS - 如何安装 Java 17

有人可以告诉我在 Mac 上安装 Java 的步骤吗?

我做到了brew install java

我明白了

Warning: openjdk 17.0.1 is already installed and up-to-date.
To reinstall 17.0.1, run:
  brew reinstall openjdk
Run Code Online (Sandbox Code Playgroud)

如果我执行 java -version,我会得到这个。

openjdk version "13.0.8" 2021-07-20
Run Code Online (Sandbox Code Playgroud)

如果我导航到/Library/Java,我有 2 个空目录。

java 17安装在哪里?

java macos javafx

96
推荐指数
5
解决办法
21万
查看次数

如何将Process Builder的输出重定向到字符串?

我正在使用以下代码来启动进程构建器.我想知道如何将其输出重定向到String.

ProcessBuilder pb = new ProcessBuilder(System.getProperty("user.dir")+"/src/generate_list.sh", filename);
Process p = pb.start();
Run Code Online (Sandbox Code Playgroud)

我试过使用,ByteArrayOutputStream但它似乎没有用.

java stream processbuilder

56
推荐指数
7
解决办法
8万
查看次数

在Spring Boot中使用Tomcat启用http2

Tomcat 8.5,这将是默认的Spring Boot 1.4,(将在明天发布)支持http2.

如何http2Spring Boot应用程序中启用?

java tomcat haproxy spring-boot http2

34
推荐指数
5
解决办法
2万
查看次数

Spring Cache:Evict多个缓存

我正在使用Spring Cache抽象,我定义了多个缓存.有时,当数据发生变化时,我想要驱逐多个缓存.有没有使用Spring的@CacheEvict注释驱逐多个缓存?

java spring spring-cache

27
推荐指数
2
解决办法
2万
查看次数

Hibernate Native SQL Query检索实体和集合

这是我的情况,我有两个基本的POJO,我已经给出了一个简单的hibernate映射:

Person
  - PersonId
  - Name
  - Books

Book
  - Code
  - Description
Run Code Online (Sandbox Code Playgroud)

我的SQL查询返回如下所示的行:

PERSONID NAME       CODE DESCRIPTION
-------- ---------- ---- -----------
1        BEN        1234 BOOK 1
1        BEN        5678 BOOK 2
2        JOHN       9012 BOOK 3
Run Code Online (Sandbox Code Playgroud)

我的hibernate查询如下所示:

session.createSQLQuery("select personid, name, code, description from person_books")  
       .addEntity("person", Person.class)
       .addJoin("book", "person.books")
       .list();
Run Code Online (Sandbox Code Playgroud)

这是每节:18.1.3的hibernate文档:http: //docs.jboss.org/hibernate/core/3.6/reference/en-US/html/querysql.html#d0e17464

我期望在我的列表中得到的是2个人物对象,其中包含书籍集合中的书籍对象:

List
 |- Ben
 |   |- Book 1
 |   '- Book 2
 '- John
     '- Book 3
Run Code Online (Sandbox Code Playgroud)

我实际看到的是:

List
 |- Object[]
 |   |- Ben
 |   | …
Run Code Online (Sandbox Code Playgroud)

java hibernate native-sql

19
推荐指数
3
解决办法
5万
查看次数

如何在H2数据库SQL查询中使用当前日期

我需要类似的东西

select * from tableName where date_column > now()
Run Code Online (Sandbox Code Playgroud)

但是,now()在H2中不起作用.请指教.

sql h2

16
推荐指数
2
解决办法
3万
查看次数

在Spring javaconfig中,如何初始化依赖于@Service的@Bean

我已经将基于Spring 4.0的项目从xml转换为javaconfig.

在初始化时,我的一个bean需要访问Hibernate以通过Spring @Service(buildingService)从DB获取一些配置数据.bean初始化如下所示:

@Bean
@DependsOn({ "transactionManager", "webSocketHandler", "buildingService" })
Smarty smarty() {
    Smarty bean = new Smarty();
    bean.init(); // I also tried @Bean(initMethod = "init") with no difference
    return bean;
}
Run Code Online (Sandbox Code Playgroud)

问题在于,在bean.init()访问服务时,服务失败了NullPointerException.

我补充说buildingService,@DependsOn但没有帮助.

可能在@Service注释后的类被处理了@Bean!?

我可以自己初始化@Service-annotated类吗?

编辑1

感谢所有反馈!

我需要添加一些细节:

buildingService不是@Bean,它是,嗯,a @Service,看起来像这样:

@Service("buildingService")
@Transactional
public class BuildingService {

...

    public List<Building> getAll() {
        final Session session = sessionFactory.getCurrentSession();
        final Query query = …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate spring-java-config

16
推荐指数
1
解决办法
5万
查看次数

添加新的Spring会话时,cookie值出错

在我的Spring Boot基于1.4的应用程序中,我用来Spring Session将会话数据存储在数据库中JDBC.

这适用于默认会话.但是当我想添加一个新会话(通过添加?_s=1到应用程序URL)时,我得到以下异常:

java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value
Run Code Online (Sandbox Code Playgroud)

这是什么问题?

编辑:请注意,我自己没有设置cookie值,Spring Session这样做.因此我无法分辨它试图设置的值.

完整的堆栈跟踪在这里:

java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value
    at org.apache.tomcat.util.http.Rfc6265CookieProcessor.validateCookieValue(Rfc6265CookieProcessor.java:160) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    at org.apache.tomcat.util.http.Rfc6265CookieProcessor.generateHeader(Rfc6265CookieProcessor.java:109) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    at org.apache.catalina.connector.Response.generateCookieString(Response.java:989) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    at org.apache.catalina.connector.Response.addCookie(Response.java:937) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    at org.apache.catalina.connector.ResponseFacade.addCookie(ResponseFacade.java:386) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    at org.springframework.session.web.http.DefaultCookieSerializer.writeCookieValue(DefaultCookieSerializer.java:112) ~[spring-session-1.2.1.RELEASE.jar:na]
    at org.springframework.session.web.http.CookieHttpSessionStrategy.onNewSession(CookieHttpSessionStrategy.java:213) ~[spring-session-1.2.1.RELEASE.jar:na]
    at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.commitSession(SessionRepositoryFilter.java:247) ~[spring-session-1.2.1.RELEASE.jar:na]
    at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.access$100(SessionRepositoryFilter.java:214) ~[spring-session-1.2.1.RELEASE.jar:na]
    at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryResponseWrapper.onResponseCommitted(SessionRepositoryFilter.java:202) ~[spring-session-1.2.1.RELEASE.jar:na]
    at org.springframework.session.web.http.OnCommittedResponseWrapper.doOnResponseCommitted(OnCommittedResponseWrapper.java:226) ~[spring-session-1.2.1.RELEASE.jar:na]
    at org.springframework.session.web.http.OnCommittedResponseWrapper.sendRedirect(OnCommittedResponseWrapper.java:126) ~[spring-session-1.2.1.RELEASE.jar:na]
    at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138) ~[tomcat-embed-core-8.5.4.jar:8.5.4]
    at …
Run Code Online (Sandbox Code Playgroud)

java spring-boot spring-session

14
推荐指数
3
解决办法
1万
查看次数

打包Spring启动应用程序,包括JSP和静态资源

我想将一个spring-boot应用程序打包为jar,我这样做mvn package.

这样就产生了不包含任何一个罐子/WEB-INF/jsp,也没有/src/main/webapp/resources.

我怎样才能确保我的jar包含所需的一切?

我的当前pom.xml:

<modelVersion>4.0.0</modelVersion>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-samples</artifactId>
    <version>1.0.0.RC3</version>
</parent>

<packaging>jar</packaging>

<properties>
    <main.basedir>${basedir}/../..</main.basedir>
    <m2eclipse.wtp.contextRoot>/</m2eclipse.wtp.contextRoot>
</properties>

<dependencies>

    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>${project.groupId}</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>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

    <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
    </dependency>

    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jdbc</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
    </dependency>

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.3-1101-jdbc41</version>
    </dependency>

</dependencies>

<!-- Package as an executable JAR -->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId> …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc maven spring-boot

9
推荐指数
2
解决办法
1万
查看次数

Spring Boot:在Quartz作业执行中使用@Service

在一个应用程序中,由于我将它从经典的Spring webapp(部署在系统Tomcat中)转换为Spring Boot(V1.2.1)应用程序,我面临的问题是基于Quartz的预定作业不再起作用.

我安排这些Quartz工作如下:

// My own Schedule object which holds data about what to schedule when
Schedule schedule = scheduleService.get(id of the schedule);

String scheduleId = schedule.getId();

JobKey jobKey = new JobKey(scheduleId);
TriggerKey triggerKey = new TriggerKey(scheduleId);

JobDataMap jobData = new JobDataMap();
jobData.put("scheduleId", scheduleId);

JobBuilder jobBuilder = JobBuilder.newJob(ScheduledActionRunner.class)
    .withIdentity(jobKey)
    .withDescription(schedule.getName())
    .usingJobData(jobData);

JobDetail job = jobBuilder.build();

TriggerBuilder triggerBuilder = TriggerBuilder.newTrigger()
    .forJob(jobKey)
    .withIdentity(triggerKey)
    .withDescription(schedule.getName());

triggerBuilder = triggerBuilder.withSchedule(CronScheduleBuilder.cronSchedule(schedule.toCronExpression()));

Trigger trigger = triggerBuilder.build();

org.quartz.Scheduler scheduler = schedulerFactoryBean.getScheduler();

scheduler.scheduleJob(job, trigger);
Run Code Online (Sandbox Code Playgroud)

ScheduledActionRunner:

@Component
public …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate quartz-scheduler spring-boot

9
推荐指数
2
解决办法
2万
查看次数