小编th3*_*org的帖子

IntelliJ无法正确识别特定文件,而是卡在文本文件中

我的IntelliJ项目中有一个freemarker文件(ftl)被错误地识别为文本文件.有许多相同的类型是正确的.我知道"标记为文本"选项.这可能是此文件被标记为文本的原始原因,但我没有提供"标记为ftl文件"选项将其关闭,如果确实这是问题.如果我将其他ftl文件标记为txt,我可以按预期将它们重新转换为ftl文件.

java freemarker file-type intellij-idea

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

为什么Java不允许私有成员进入接口?

为什么Java不允许私有成员进入接口?有什么特别的原因吗?

java

77
推荐指数
8
解决办法
6万
查看次数

mySQL经度和纬度查询x英里半径内的其他行

我目前有一个大约有10k行的数据库.所有这些都具有基于邮政编码中心的经度/纬度.我发现了一个我正在尝试扩展的查询,但总而言之,它在某一点上运行良好.但是,在我下面的例子中,我试图找到半径25英里范围内的东西,这在大多数情况下似乎都有效.我的大多数结果确实在25英里标准范围内屈服,但是我得到了一些从远离86英里到800英里的任何东西.

示例:这是我的中心纬度/经度:37.2790669,-121.874722 =加利福尼亚州圣何塞我得到的结果如:33.016928,-116.846046 =加利福尼亚州圣地亚哥,离圣何塞约355英里.

我当前的查询如下:

SELECT *,(((acos(sin(($lat*pi()/180)) * sin((`latitude`*pi()/180))+cos(($lat*pi()/180))
* cos((`latitude`*pi()/180)) * cos((($lon - `longitude`)*pi()/180))))*180/pi())*60*1.1515)
AS `distance` FROM `geo_locations` HAVING `distance` <= 25 ORDER BY `distance` ASC"
Run Code Online (Sandbox Code Playgroud)

mysql latitude-longitude

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

Dropwizard ScheduledExecutorService

在我的情况下,我需要运行一些计划任务(例如每分钟)在DB中进行一些检查,如果需要,还需要一些子任务.这应该是没有DB健康检查!

DW文档说:

"应该注意,Environment有针对ExecutorService和ScheduledExecutorService实例的内置工厂方法.有关详细信息,请参阅LifecycleEnvironment#executorService和LifecycleEnvironment#scheduledExecutorService."

有谁知道如何在DW中实现这一点?试着玩DW代码的可能性,我发现了这个:

String nameFormat = "?What should this string contain?";
ScheduledExecutorServiceBuilder sesBuilder = environment.lifecycle().scheduledExecutorService(nameFormat);
ScheduledExecutorService ses = sesBuilder.build();
Runnable alarmTask = new AlarmTask();
ses.scheduleWithFixedDelay(alarmTask, 0, 5, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)

这是DW中正确的方法吗?BTW一个可运行的假人:

  private static final class AlarmTask implements Runnable {
      DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
      Calendar cal = Calendar.getInstance();
        @Override public void run() {
          ++fCount;

            cal = Calendar.getInstance();
            System.out.println(fCount + "x BEEP:" + dateFormat.format(cal.getTime()));
        }
        private int fCount;
      }
Run Code Online (Sandbox Code Playgroud)

什么是初始名称的目的,是否在某处使用?希望有人能提供帮助.

java scheduled-tasks dropwizard

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

如何在Dropwizard中记录SQL语句

如何打开Dropwizard应用程序的SQL查询日志记录?我希望它只在某些环境中记录SQL.

java sql database logging dropwizard

10
推荐指数
1
解决办法
5209
查看次数

Hibernate与JDBI

我正在使用Dropwizard框架(版本0.7.0)构建Web服务.它涉及对数据库执行一些只读查询,操作结果集,然后返回该数据集.我使用MySQL作为数据库引擎.由于我是这个框架的新手,我想知道我应该选择哪个选项:Hibernate或JDBI.

java sql hibernate jdbi dropwizard

8
推荐指数
1
解决办法
7479
查看次数

在服务方法中使用@Timed

我正在使用Spring Boot,我想要注释我的一些@Service方法,@Timed因此我可以查看调用度量端点的统计信息.

我从Spring文档中读到了可以使用dropwizard注册表的文档,但我找不到任何使用dropwizar注释的示例.

如何配置我的Spring Boot应用程序,以便每个@Timed使用内置Spring执行器模块自动发布其统计信息的方法进行注释?

java spring metrics spring-boot

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

在 PHP 中将 HTML 实体和特殊字符转换为 UTF8 文本

有很多关于在 PHP 中将 HTML 实体和特殊字符转换为 UTF8 文本的问题和文档。还有 PHP 文档本身,例如 thishtmlspecialchars_decode()和 this html_entity_decode()。但是,我找不到任何函数/解决方案清楚地描述如何将任何 HTML 字符和特殊实体转换为 UTF-8 文本。他们都说“如果你想这样做,那就这样做”等等。但没有任何解决方案指出“拥有人类可以阅读的纯 UTF-8 文本,然后这样做”。

我问的原因是我真的没有测试用例。我正在读取一个数据库,它是多语言的。然而,唯一的保证是字符是 HTML 格式的,我需要将它们转换为 UTF-8,以便理解这些语言的人可以阅读。现在,我该怎么做呢?清理/解码输入使其成为纯文本的正确方法是什么?

谢谢。


更新

这是一个更新,从评论中可以清楚地看出我没有正确地提出问题。我的数据库包含文本。我想将该文本(包含 HTML 实体和特殊字符)转换为可以在网页上向最终用户显示的 UTF-8 文本。数据库中的文本是用多种语言编写的(例如法语、阿拉伯语、英语等)。所有这些都可以包含特殊字符的 HTML 实体。那么我怎样才能将所有这些转换为 UTF-8 文本,以便理解这些语言的人可以阅读呢?我喜欢删除那些特殊字符并将它们转换为人类可以阅读的内容。

php decode utf-8 html-entities htmlspecialchars

6
推荐指数
1
解决办法
9373
查看次数

使用TestResource进行Dropwizard集成测试

有谁知道如何添加测试资源(即仅用于测试目的而不是在应用程序的run()方法中添加的测试资源)?

这是一个例子:

public class MyTest {   
    @ClassRule
    public static final DropwizardAppRule<TestConfiguration> RULE =
            new DropwizardAppRule<TestConfiguration>(MyApp.class, "my-app-config.yaml");


    @BeforeClass
    public static void setUpBeforeClass() throws Exception
    {
        MyTest.RULE.getEnvironment().jersey().register(new JustForTestingResource());
    }


    @Test
    public final void testTestResource()
    {
        Client client = new Client();

        ClientResponse response = client.resource(
            String.format("http://localhost:%d/rest/v1/test", RULE.getLocalPort()))
            .get(ClientResponse.class);

        assertThat(response.getStatus(), is(200));   
    }
}
Run Code Online (Sandbox Code Playgroud)

public class JustForTestingRessource {


    @GET
    @Path("test")
    @Produces(MediaType.APPLICATION_JSON)
    public Response getInTestResource()
    {
        return Response.status(Status.OK).type(MediaType.TEXT_PLAIN).entity("get @Path(\"test\") is ok").build();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是添加的资​​源没有添加,我找不到资源404错误响应.看来我在资源发布后注册了新资源,启动后Dropwizard里面没有刷新.

我不想扩展我的Application类,我不想将测试代码插入到我的实际应用程序代码中.有没有人知道如何注册测试资源而不在应用程序的run()方法中注册它?

这有效,但需要一个新类:

public class TestService extends MyService{


    @Override
    public void run( …
Run Code Online (Sandbox Code Playgroud)

java testing rest dropwizard

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