小编Tou*_*uko的帖子

启用cookie后,为什么jsessionid出现在Wicket URL中?

我注意到,当用户第一次访问我的网站时,Wicket生成的URL包含一个jsessionid,而不是依赖于cookie来获取会话信息.

cookie确实成功设置,如果用户只是重新加载页面,jsessionid则不再附加到URL.你可以在这里测试一下:pixlshare.com.将鼠标悬停在任何图片链接上都会显示带有jsessionid; 重新加载页面,jsessionids将被删除.

根据以前的Wicket SEO页面的经验,我知道如何删除jsessionid它以将其隐藏起来,但是对于普通用户使用这种技术似乎是一种黑客攻击.它也将破坏网站,让那些偏执狂的人足以让cookie被禁用.

这是在最近从Glassfish转移到Tomcat之后发生的,尽管我不能肯定地说这是原因.另外,我在Tomcat面前使用Apache的mod_proxy.

cookies tomcat wicket jsessionid

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

如何使用Java检测同步违规

我想知道有什么好方法可以对同步进行断言或者某些事情以便我可以检测同步违规(在测试时).

例如,我将使用一个不是线程安全且不会是线程安全的类的情况.通过某种方式,如果从多个线程调用某些方法,我会有一些断言可以通知我(日志或其他东西).

我渴望能够为AWT调度线程做类似的事情,具体如下:

public static void checkDispatchThread() {
    if(!SwingUtilities.isEventDispatchThread()) {
        throw new RuntimeException("GUI change made outside AWT dispatch thread");
    }
}
Run Code Online (Sandbox Code Playgroud)

我只想要更通用的东西.问题描述不是很清楚,但我希望有人有一些好方法=)

java multithreading synchronization error-detection

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

如何使用Play 2.0路由绑定Double参数

我正在学习自己玩2.0(使用的Java API),并希望有一个双/浮点参数(位置坐标),像http://myfooapp.com/events/find?latitude=25.123456&longitude=60.251253.

我可以通过将参数作为String并在控制器等处解析它来做到这一点,但我可以在这里使用自动绑定吗?

现在,我首先尝试简单地使用一个double值:

GET     /events/foo                 controllers.Application.foo(doublevalue: Double)
Run Code Online (Sandbox Code Playgroud)

public static Result foo(Double doublevalue) {
    return ok(index.render("Foo:" + doublevalue));
}
Run Code Online (Sandbox Code Playgroud)

我得到的是"找不到类型为Double的QueryString绑定器.尝试为此类型实现隐式QueryStringBindable."

我是否遗漏了已经提供的内容,或者我是否需要创建一个解析Double的自定义QueryStringBindable?

我发现在做Scala的自定义字符串查询字符串粘结剂一些指令http://julien.richard-foy.fr/blog/2012/04/09/how-to-implement-a-custom-pathbindable-with-play -2 /

我尝试了什么:

我在包装粘合剂上实现了DoubleBinder:

import java.util.Map;
import play.libs.F.Option;
import play.mvc.QueryStringBindable;

public class DoubleBinder implements QueryStringBindable<Double>{

    @Override
    public Option<Double> bind(String key, Map<String, String[]> data) {
        String[] value = data.get(key);
        if(value == null || value.length == 0) {
            return Option.None();
        } else {
            return Option.Some(Double.parseDouble(value[0]));
        }
    }

    @Override
    public String javascriptUnbind() {
        // TODO Auto-generated …
Run Code Online (Sandbox Code Playgroud)

java parameters double routes playframework-2.0

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

C++的持久性解决方案(带有SQL数据库)?

我想知道C++与SQL数据库有什么样的持久性解决方案?除了使用自定义SQL(并封装对DAO或类似的数据访问)之外,还有其他一些(更通用的)解决方案吗?

像一些通用库或框架(类似于Hibernate&co for Java和.NET)或其他东西?(我还没有想到的东西也欢迎提出建议)

编辑:是的,我正在寻找更多的ORM解决方案或类似的东西来处理SQL查询以及表和对象之间的关系,而不是数据库引擎本身.无论如何,谢谢你的所有答案!

c++ sql database persistence frameworks

8
推荐指数
2
解决办法
7261
查看次数

由于悬空安全组,Elastic Beanstalk部署失败

使用Elastic Beanstalk进行部署时,我们收到以下错误:

错误:配置验证异常:无效选项值:'sg-fdd33e89'(命名空间:'aws:autoscaling:launchconfiguration',OptionName:'SecurityGroups'):ID为'sg-fdd33e89'的安全组不存在.

可能相关的事情:

  • 我们在.ebextensions中为ELB提供了自定义安全组设置
  • 我们之前已经从较旧的EB环境中克隆了这个特定的EB环境,并且因为这个安全组而无法使旧环境变得不稳定.

(已经解决了这个但是分享了这个问题,以防它帮助其他人)

amazon-web-services amazon-elastic-beanstalk aws-security-group

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

如何使用Java 5和6来存根/模拟JDBC ResultSet?

我正在测试一些使用JDBC语句等的类,现在我遇到了JDBC ResultSet接口的问题:

该软件应该与Java 5和Java 6一起运行,因此测试也应该与两个版本一起运行.不幸的是,Java 6引入了一堆新方法(这仍然不是什么大问题),它返回了一堆新的类/接口,这使得事情变得更加困难.(参见Frank Carver的Punch Barrel -例如Java 6打破了JDBC)

在找出这些版本差异之前,我考虑了在存根和模拟之间并最终使用存根,因为ResultSet具有内部状态(当前行处理),这对我来说更自然地使用存根,如下所示:

public class StubResultSet implements ResultSet {
    private Object[][] data;
    private int currentRow = -1;
    private boolean closed = false;

    public StubResultSet(Object[][] data) {
        this.data = data;
    }

    public Object getObject(int columnIndex) throws SQLException {
        checkClosed();
        return data[currentRow][columnIndex];
    }
    public String getString(int columnIndex) throws SQLException {
        checkClosed();
        return (String) getObject(columnIndex);
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

但是如果我没有引入新的方法public NClob getNClob(int columnIndex),那么这个类在Java 6下被破坏了 - 如果我在Java 5下介绍它们的类.

我可以使用mockito(例如)回调来让状态反映出返回值,但是有人还有其他一些 - …

java jdbc resultset mocking stub

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

如何使用MySQL命令行工具默认显示存储为BIT的布尔值

我选择使用MySQL存储为BIT的布尔类型时出现问题.我知道我可以使用SELECT CAST(1 = 1 AS SIGNED INTEGER)或SELECT BOOLFIELD + 0 等自定义查询来显示位值.

但是,有没有办法让命令行客户端以SELECT*FROM TABLE等查询以合理的方式显示我们的布尔值?

更新:目前我只看到结果中的空格示例:

mysql> SELECT distinct foo, foo + 0 from table
+------+-------+
| foo  | foo_0 |
+------+-------+
|      |     0 |  <-- Only space
|     |     1 |   <-- Space, one space less
+------+-------+
Run Code Online (Sandbox Code Playgroud)

对于一些google搜索,我发现了一些(也许相关)从MySQL数据库错误的bug(http://bugs.mysql.com/bug.php?id=28422,http://bugs.mysql.com/bug.php?id = 43670)但没有回答或修复?

mysql select boolean command-line-interface bit

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

是否可以将 gcloud CLI 连接到 Pubsub 模拟器实例

使用 CLI 启动 PubSub 模拟器gcloud并相应加载环境变量后,gcloudCLI 仍通过我们的 Google 生产帐户进行身份验证。基本上,我们做了:

# Starting the emulator in one shell
gcloud beta emulators pubsub start

# In a different shell
$(gcloud beta emulators pubsub env-init)
gcloud pubsub topics list
Run Code Online (Sandbox Code Playgroud)

不过,我们的制作主题已在此处列出。预期的输出将是一个空列表,因为我们试图列出新启动的 PubSub 模拟器中的主题,该模拟器在启动时不包含任何内容。

我们习惯于使用可cbt识别BIGTABLE_EMULATOR_HOST. 是否可以使用相同类型的工具来管理/检查 PubSub 模拟器资源?看起来只是gcloud不知道*_EMULATOR_HOST变量。

先感谢您,

PS:我们的输出gloud version

Google Cloud SDK 182.0.0
alpha 2017.09.15
beta 2017.09.15
bigtable
bq 2.0.27
cbt
core 2017.12.01
gcloud
gsutil 4.28
kubectl
pubsub-emulator 2017.09.15
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform google-cloud-pubsub google-cloud-pubsub-emulator

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

如何使用Play Framework测试电子邮件逻辑

我找到了一个扩展Mailer的课程,并希望对此进行自动测试.

使用模拟邮件程序,我可以将邮件发送到控制台,但如何从自动化测试中测试邮件逻辑?

(有没有像使用Rails测试Mailer一样的东西?)

br,Touko

java email testing unit-testing playframework-1.x

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

如何使用 pubsub 模拟器 http API 创建订阅?

启动 pubsub 模拟器后,我尝试使用 HTTP API 创建主题和订阅。创建主题成功,但我不明白为什么创建订阅失败。我是否做错了什么或者这是工具中的错误?您可以看到以下日志:

$ curl -s -X PUT http://localhost:8085/v1/projects/myproject/topics/mytopic
{
  "name": "projects/myproject/topics/mytopic"
}

$ curl -s -X PUT http://localhost:8085/v1/projects/myproject/subscriptions/mysub \
    --data '{"topic":"projects/myproject/topics/mytopic"}'
Not Found
Run Code Online (Sandbox Code Playgroud)

在模拟器方面,我看到以下内容:

# create topic logs
[pubsub] Apr 29, 2020 10:37:19 AM io.gapi.emulators.grpc.GrpcServer$3 operationComplete
[pubsub] INFO: Adding handler(s) to newly registered Channel.
[pubsub] Apr 29, 2020 10:37:19 AM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
[pubsub] INFO: Detected non-HTTP/2 connection.
[pubsub] Apr 29, 2020 10:37:19 AM io.gapi.emulators.grpc.GrpcServer$3 operationComplete
[pubsub] INFO: Adding handler(s) to newly registered Channel.
[pubsub] Apr 29, …
Run Code Online (Sandbox Code Playgroud)

emulation google-cloud-pubsub google-cloud-pubsub-emulator

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