小编dav*_*ooh的帖子

使用Spring JDBC模板的连接异常

我有一个使用Spring开发的简单Web应用程序,最近我在数据库连接方面遇到了一些问题。我的数据库在MS SQL Server 2005上。

为了检索数据,我使用框架提供的JDBCTemplate类实现了几个DAO。

有时我会遇到以下异常:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.DataAccessResourceFailureException: StatementCallback; SQL [SELECT [Campaigns].[CampaignID],[CampaignCode],[CampaignType],[StartDate],[EndDate],[Status],[FirstUpdate],[LastUpdate],[FirstUpdateUserID],[LastUpdateUserID],[CampaignDescriptions].[Description] FROM [Campaigns] INNER JOIN [CampaignDescriptions] ON [Campaigns].[CampaignID] = [CampaignDescriptions].[CampaignID] ORDER BY [StartDate] DESC]; Connection reset by peer: socket write error; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: socket write error
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Run Code Online (Sandbox Code Playgroud)

该异常似乎仅在执行报告的查询时才会发生。

我不明白是什么导致了这个问题。任何的想法?

执行查询的方法是:

@Transactional(propagation = Propagation.NEVER)
public Campaign[] getAll() {
    List<Campaign> campList = getJdbcTemplate()
            .query(BASE_QUERY,
                    new CampaignMapper());
    return campList.toArray(new Campaign[0]);
}
Run Code Online (Sandbox Code Playgroud)

其中BASE_QUERY是在异常消息是相同的。

java spring jdbc spring-mvc jdbctemplate

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

在数据库中持久保存Quartz触发器的正确​​方法

我是Quartz的新手,现在我需要在Spring Web应用程序中安排一些工作.

我知道Spring + Quartz集成(我使用的是Spring v 3.1.1),但我想知道这是否是正确的方法.

特别是我需要将我的计划任务保存在数据库中,以便在重新启动应用程序时重新初始化它们.

Spring调度包装器是否提供了一些实用程序来执行此操作?你能告诉我一些"众所周知"的方法吗?

java spring persistence jdbc quartz-scheduler

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

类型中的方法func(List <Object>)不适用于参数(List <String>)

我已经尝试了这两段代码,但我两个都遇到了错误.下面附有两件作品和我得到的两个错误.如果发生这种情况,我将不胜感激.

例1

static List<String> list = new ArrayList<String>();

public static void main(String[] args) {    
  func(list);    
}

private static void func(List<Object> lst) {                
}
Run Code Online (Sandbox Code Playgroud)

错误:

The method func(List<Object>) in the type is not applicable for the arguments (List<String>)

例2

static List<Object> list = new ArrayList<Object>();

public static void main(String[] args) {
    func(list);    
}

private static void func(List<String> lst) {
}           
Run Code Online (Sandbox Code Playgroud)

错误:

The method func(List<String>) in the type is not applicable for the arguments (List<Object>)

java generics collections

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

为@Column定义全局设置默认值'nullable = false'

@Column注释文档中,我验证的nullable属性具有true默认值.

在我的实体定义中,我想将不可为空的列设置为默认行为,但我不想为每一列设置此列.

有没有办法全局更改nullable属性(最终是其他)的默认值?

java orm annotations jpa

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

春季活动与方面

我最近在Spring Framework中发现了事件处理,并且我想了解该特定工具的功能和用例。

乍一看,它们似乎与Aspects非常相似,但也许我没有看到全局。

事件是AOP的替代还是基于AOP?在某些情况下,事件比方面更好吗?

java events spring

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

如何扩展默认的 Spring Boot CacheManager 配置

我在我的 Web 应用程序中使用 Spring Boot 缓存支持,并将Caffeine设置为缓存提供程序。

我的项目中有几个缓存,大多数都有通用的配置,但是对于两个特定的缓存我需要设置不同的参数。

在我的application.properties我有类似的东西:

spring.cache.cache-names=a-cache,b-cache,c-cache, ...
spring.cache.caffeine.spec=maximumSize=200,expireAfterWrite=3600s
Run Code Online (Sandbox Code Playgroud)

这适用于常见的缓存。然后我想用自定义参数扩展这个配置。

这篇文章解释了如何通过@Configuration类配置缓存,但使用这种方法我完全覆盖了通用配置。

我需要的是这样的:

@Configuration
public class CacheConfiguration {

    @Autowired
    private CacheManager cacheManager;

    @Bean
    public CacheManager cacheManager(Ticker ticker) {
        CaffeineCache c1 = new CaffeineCache("my-custom-cache", Caffeine.newBuilder()
                       .expireAfterWrite(10, TimeUnit.MINUTES)
                       .maximumSize(400)
                       .build());

        // ...

        cacheManager.setCaches(Arrays.asList(..., c1, ... )); // here I'd like to add custom caches...
        return cacheManager;
    }

}
Run Code Online (Sandbox Code Playgroud)

但是声明一个新的CacheManagerbean,“原始”cacheManager不是自动装配的......

有没有办法实现我需要的?

java spring spring-boot caffeine

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

如何使用main方法访问Spring Boot应用程序中application.properties文件中的值

我在src/main/resources文件夹中有一个application.properties.它有一个属性

username=myname
Run Code Online (Sandbox Code Playgroud)

我上课了

public class A
{
    @Value("${username}")
    private String username;

    public void printUsername()
    {
       System.out.println(username);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在我的main方法中调用printusername函数时,如下所示

public static void main(String[] args) 
{
    A object=new A();
    object.printUsername();
}
Run Code Online (Sandbox Code Playgroud)

它打印为null.请有人告诉我我错过了什么?

java spring properties-file spring-boot

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

我的 Jekyll 网站站点地图中出现意外网址

我正在使用 Jekyll 创建我的个人博客 (davioooh.com) 并将其托管在 GitHub 页面上。

但最近我发现了一个奇怪的事情...

当推送/部署到我的存储库时,该博客sitemap.xml包含两个额外的网址:

<url>
  <loc>
    http://davioooh.com/assets/javascript/anchor-js/docs/grunticon/preview.html
  </loc>
  <lastmod>2017-08-11T16:40:49+00:00</lastmod>
</url>
<url>
  <loc>
    http://davioooh.com/assets/javascript/anchor-js/docs/index.html
  </loc>
  <lastmod>2017-08-11T16:40:49+00:00</lastmod>
</url>
Run Code Online (Sandbox Code Playgroud)

我不明白为什么......我没有使用任何anchor-js gem 或插件......

_config.ymlmy和中声明的唯一宝石Gemfile是:

gems:
  - jekyll-feed
  - jekyll-seo-tag
  - jekyll-paginate
  - jekyll-sitemap
Run Code Online (Sandbox Code Playgroud)

那么为什么我会得到这些网址呢?

注意:当我在我的开发机器上本地测试站点时,站点地图是正确的。

注意:我使用的是自定义主题(常规主题,不是基于 gem 的)。我的_config.yml. 在这里您可以找到我的博客存储库:https ://github.com/davioooh/davioooh.github.io

更新尝试按照marcanuyjekyll的建议将gem替换github-pages为 my 。它在本地工作,但在新的推送站点地图之后仍然包含额外的网址......Gemfile

更新发现 GitHub 页面参考列出了 Jekyll 网站的默认参数。正如预期的那样,默认主题是jekyll-theme-primer. 如果我不使用基于 gem 的主题,如何覆盖此设置?

github jekyll github-pages jekyll-theme

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

在Docker容器中运行SQL Server有什么好处?

我需要在我的开发机器上运行一个SQL Server(Express)实例来使用Web应用程序.

我最近开始使用Docker,我想知道使用Microsoft SQLServer Docker镜像是否有一些优势,而不是简单地在我的机器上安装SQL Server.

我正在研究Win10机器.

sql-server docker

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

如何在不区分大小写的 Oracle DB 中返回不同的记录?

如果我有 2 条信息相同但大写和小写 NAME 不同的记录,我想显示不同的记录,我该怎么做?我试图在下面的查询中使用 distinct ,但它显示了两条记录 :( 抱歉,我是 SQL 编码的新手 :(

SELECT distinct
R.NAME,
R.EXPIRY_DATE,
R.CATEGORY
FROM REALTIME_EXEMPT R
WHERE
R.SUBMITTED_BY='ADMIN'
Run Code Online (Sandbox Code Playgroud)

提前致谢,

雷亚

sql oracle rdbms oracle10g oracle11g

4
推荐指数
1
解决办法
5470
查看次数