小编Geo*_*old的帖子

将时区从客户端(GWT)传递到服务器(Joda时间)

我在客户端(浏览器)上使用GWT,在服务器上使用Joda Time.我希望执行一些数据库查找,这些查找以当天(即00:00:00至23:59:59)为限,请求进入,时间边界基于用户(即浏览器)时区.

所以我有GWT代码做一个new java.util.Date()来获取请求的时间,并将其发送到服务器.然后我像这样使用Joda Time:

new DateTime(clientDate).toDateMidnight().toDateTime()
Run Code Online (Sandbox Code Playgroud)

当然,麻烦的是toDateMidnight(),在没有指定TimeZone的情况下,将使用系统(即服务器的)TimeZone.我一直试图找到一种简单的方法将TimeZone从浏览器传递到服务器而没有太多运气.在GWT中,我可以通过以下方式获得GMT偏移:

DateTimeFormat.getFormat("Z").fmt(new Date())
Run Code Online (Sandbox Code Playgroud)

这导致类似"-0400"的东西.但是Joda Time DateTimeZone.forID()希望字符串格式化为"America/New_York",或者是小时和分钟的整数参数.当然我可以将"-0400"分解为-4小时0分钟,但我想知道是否有更简单的方法来做到这一点.

gwt timezone jodatime

7
推荐指数
1
解决办法
7139
查看次数

Glassfish中的JNDI配置/查找

我在Glassfish中遇到一些基本的JNDI配置时遇到了麻烦.

我认为应该是一个简单的任务:在运行时,确定特定属性是否设置为true.我认为这是JNDI的一个很好的应用程序,但似乎无法在app服务器和我的servlet代码之间获得正确的路径.

这是我在Glassfish中配置属性的方法:

在此输入图像描述

在我的servlet代码中,我试图通过以下方式查找值:

Boolean enabled = (Boolean) ctx.lookup("java:global/arizona/quartz_enabled");
Run Code Online (Sandbox Code Playgroud)

除了这条路之外,我还尝试了以下方法但没有成功:

  • Java的:全球/亚利桑那/亚利桑那/ quartz_enabled
  • 的java:模块/亚利桑那/ quartz_enabled
  • 的java:模块/亚利桑那/亚利桑那/ quartz_enabled

我的应用程序名为"arizona",但如果重要,则部署到根上下文.

我确定这只是一个简单的问题,找出适当的命名空间到达该属性,但我觉得我只是在黑暗中试图找到它.有没有一种简单的方法来浏览Glassfish中的JNDI树?

jndi java-ee

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

解决第三方gem代码中的名称冲突

我的项目依赖于太阳黑子,太阳黑子依赖于progress_bar.progress_bar定义了一个被调用的类(在任何模块/命名空间之外)ProgressBar.

我的测试代码依赖于minitest-reporter,而后者依赖于ruby-progressbar.ruby-progressbar定义了一个类(也在任何模块/命名空间之外)ProgressBar.

作为Ruby的新手,我花了很多时间来追踪这两个ProgressBar类是冲突的事实.我知道如何命名我自己的代码来防止这样的问题,但有没有办法解决第三方代码中的这种冲突?

更新:

minitest-reporter的所有者非常友好地将他对(显然已被遗弃的)ProgressBar的使用替换为另一个进度库PowerBar.所以这解决了我的问题.但是猜猜 - PowerBar还会污染全局命名空间!这似乎在Ruby中是病态的......

ruby rubygems

7
推荐指数
2
解决办法
1490
查看次数

比较两个BufferedImages之间像素值的最快方法?

我有一个TYPE_INT_BGR类型的BufferedImage.我需要与另一个BufferedImage进行逐像素比较,以计算两个图像之间的"距离".我有一些有用的东西,但很慢.我从"参考"图像中获取一个像素,将其分解为RGB字节:

    int pixel = referenceImage.getRGB(col, row);
    int red   = (pixel >> 16) & 0xff;
    int green = (pixel >> 8) & 0xff;
    int blue  = (pixel) & 0xff;
Run Code Online (Sandbox Code Playgroud)

我将r/g/b值与候选图像的相应像素进行比较,并将差值求平方.

有没有更快的方法来进行这种比较?窥视JRE源代码,我看到BufferedImage.getRGB()实际上是将光栅中的RGB值组合在一起,这对我来说是浪费的,因为我只是将其分解为字节.

我将尝试直接尝试,但我想知道是否有更好的方法来做到这一点,无论是通过我可能错过的Java或第三方API.

java rgb bufferedimage java-2d

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

Google App Engine(Java)TaskQueue API:如何查询正在运行/挂起的任务数量?

是否可以以编程方式查询Task Queue API以查看当前正在执行/挂起的任务数量?

我没有看到任何方法在API中执行此操作,因此我使用在数据存储区中创建对象来表示排队的任务.运行时,任务会从数据存储中删除相应的条目.

可以想象,这很容易失去同步.我真的很高兴能够在队列中获得给定队列名称的简单任务计数.

java google-app-engine task-queue

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

Glassfish/Hibernate的PermGen空间问题

我正在Glassfish 3.1上运行GWT + Hibernate应用程序.几个小时后,我跑出了Permgen空间.这没有任何webapp重新加载.我正在跑步–XX:MaxPermSize=256m –XmX1024m.

我接受了这个页面的建议,发现我泄漏了很多类 - 我所有的Hibernate模型和所有的GWT RequestFactory代理.

上面引用的指南说"检查链条,找到意外参考,并修复代码".说起来容易做起来难.

类加载器总是指向一个实例org.glassfish.web.loader.WebappClassLoader.进一步挖掘,我发现了许多来自$Proxy135和类似命名对象的引用.但我不知道还有什么可以贯彻的.

java memory-leaks permgen classloader glassfish-3

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

SOLR:按字段按字段排序结果

SOLR结果通常按搜索条件的"最佳匹配"排序.是否可以给定的SOLR字段按字母顺序排序结果?

我意识到这不是一个典型的用例,但这是我的动机.我们有很多围绕SOLR编写的代码,它们根据用户搜索数据的各个字段执行查询.大多数情况下,我们需要相关性排序(即最佳匹配).

但是一个异常的用例要求我们按字段按字母顺序返回数据.我可以使用我们的SQL数据库执行此查询(完全避免使用SOLR),但我必须复制大量围绕消费SOLR结果(特别是方面)的代码.我希望使用相同的代码路径,如果可以从SOLR获得这样的排序.

solr

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

Rails ActionMailer忽略environment.rb中的设置

我将ActionMailer配置放在我的config/environment.rb文件中,如下所示:

MyApp::Application.initialize!
MyApp::Application.configure do

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
      address: "smtp.elasticemail.com",
      port: 2525,
      domain: "myapp.com",
      authentication: "plain",
      user_name: "my_username",
      password: "my_password",
      enable_starttls_auto: true
  }

end
Run Code Online (Sandbox Code Playgroud)

我的理解是,这是配置适用于所有环境的设置的正确方法.

这在开发中运行良好,但是当我部署到我的登台服务器(使用自定义config/environments/staging.rb配置文件)时,我在尝试传递邮件时遇到"连接被拒绝"错误.staging.rb根本没有与邮件程序相关的设置.

所以我在登台服务器上启动了控制台RAILS_ENV=staging rails c,并且"put Rails.application.config.action_mailer"显示我放入的设置environment.rb确实有效,但由于某些原因,ActionMailer没有使用它们.

通过实验,我发现直接复制配置可以staging.rb解决问题.为什么这有必要?如果rails控制台显示设置有效,为什么ActionMailer不使用它们?

深入挖掘,我看到我的邮件程序类的delivery_method未按预期设置:

MyMailer.foo(Person.find(1)).delivery_method

 => #<Mail::SMTP:0x0000000370d4d0 @settings={:address=>"localhost", :port=>25, :domain=>"localhost.localdomain", :user_name=>nil, :password=>nil, :authentication=>nil, :enable_starttls_auto=>true, :openssl_verify_mode=>nil, :ssl=>nil, :tls=>nil}> 
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails actionmailer ruby-on-rails-3

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

json.Unmarshal()接受指向指针的指针

我非常偶然地注意到,我可以成功地传递指向结构的指针和指向结构的指针json.Unmarshal(),并且两者都可以正常工作:

package main

import (
    "testing"
    "encoding/json"
)

type Person struct {
    Name string
    Age  int
}

func TestMarshaling(t *testing.T) {
    foo := &Person{Name: "bob", Age: 23}

    // marshal it to bytes
    b, err := json.Marshal(foo)
    if err != nil {
        t.Error(err)
    }

    bar := &Person{}             // pointer to new, empty struct
    err = json.Unmarshal(b, bar) // unmarshal to bar, which is a *Person
    if err != nil {
        t.Error(err)
    }
    testBob(t, bar)  // ok

    bar = &Person{} …
Run Code Online (Sandbox Code Playgroud)

struct pointers go

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

Tomcat + Wicket:UTF-8字符无法正确呈现

我有一个Wicket应用程序,其中一些页面包含重音字符,输入为UTF-8,例如"résumé".

当我通过传统的Wicket Start.java类(调用嵌入式Jetty服务器)调试应用程序时,一切都很好.但是,当我尝试部署到本地Tomcat实例时,它呈现为"r√©sum√©".

我的文档看起来像:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"
      xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body>
   résumé
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

以下是curl -I在Jetty上运行时返回页面的内容:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Language: en-US
Pragma: no-cache
Cache-Control: no-cache, max-age=0, must-revalidate
Content-Length: 13545
Server: Jetty(6.1.25)
Run Code Online (Sandbox Code Playgroud)

这就是Tomcat返回的内容:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Pragma: no-cache
Cache-Control: no-cache, max-age=0, must-revalidate
Content-Type: text/html;charset=UTF-8
Content-Language: en-US
Transfer-Encoding: chunked
Date: Sat, 23 Jul 2011 14:36:45 GMT
Run Code Online (Sandbox Code Playgroud)

html tomcat wicket utf-8

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