小编Bry*_*yan的帖子

为什么我最终得到Casbah/Java MongoDB驱动程序的java.lang.IllegalArgumentException?

我看到一个奇怪的问题使用 casbah / java driver.

当驱动程序尝试从mongo创建响应时,我一直遇到以下异常:


  Oct 16, 2012 10:45:07 AM com.mongodb.DBTCPConnector$MyPort error
  SEVERE: MyPort.error called
  java.lang.IllegalArgumentException: response too long: 1634610484
    at com.mongodb.Response.(Response.java:40)
    at com.mongodb.DBPort.go(DBPort.java:110)
    at com.mongodb.DBPort.go(DBPort.java:75)
    at com.mongodb.DBPort.call(DBPort.java:65)
    at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:201)
    at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:295)
    at com.mongodb.DBCursor._check(DBCursor.java:354)
    at com.mongodb.DBCursor._hasNext(DBCursor.java:484)
    at com.mongodb.DBCursor.hasNext(DBCursor.java:509)
    at com.mongodb.casbah.MongoCursorBase$class.hasNext(MongoCursor.scala:73)
    at com.mongodb.casbah.MongoCursor.hasNext(MongoCursor.scala:497)
    at scala.collection.Iterator$class.foreach(Iterator.scala:660)
    at com.mongodb.casbah.MongoCursor.foreach(MongoCursor.scala:497)
        ...
Run Code Online (Sandbox Code Playgroud)

这似乎是随机发生的,即使在mongo不应该从查询中返回任何结果的情况下也是如此.报告的大小不一致,通常大于应有或可能的大小.

我猜这可能是某种形式的腐败与回应.我使用Wireshark很难解决这个问题的正面或反面,但我一直发现导致响应抛出此错误的查询的请求/响应链具有来自MongoDB的"TCP Window Full"响应:

在此输入图像描述

我正在使用的版本:


 Casbah: 2.1.5.0
 Mongo Java Driver: 2.5.3
 MongoDB: 2.2

如果有人能就我可能做错的事情或任何有关如何进一步调试此问题的指示提出任何建议,我将不胜感激.

更新:查看发行说明后,Casbah 2.1.5.0,似乎使用的java驱动程序的版本是2.5.3,而不是2.7.3

java mongodb casbah mongodb-java

41
推荐指数
1
解决办法
3237
查看次数

使用Javamail连接到Gmail smtp服务器会忽略指定的端口并尝试使用25

我正在尝试在groovy脚本中使用javamail通过gmail发送电子邮件.我在网上看了很多地方,到目前为止还没能让它运转起来.我在运行脚本时遇到的错误是:

DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 25, isSSL false
Caught: javax.mail.SendFailedException: Send failure (javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25 (javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?))
Run Code Online (Sandbox Code Playgroud)

它似乎尝试使用端口25,即使我已经指定它应该使用端口587.有谁知道可能导致此问题的原因,我已经使用telnet连接到端口587上的smtp服务器,并且thunderbird使用端口587具有STARTTLS安全性,并且能够使用smtp服务器成功发送邮件.这告诉我它不是阻塞端口或连接问题.这是我用来尝试发送电子邮件的代码:

import javax.mail.*
import javax.mail.internet.*

private class SMTPAuthenticator extends Authenticator
{
    public PasswordAuthentication getPasswordAuthentication()
    {
        return new PasswordAuthentication('email@gmail.com', 'password');
    }
}

def  d_email = "email@gmail.com",
        d_password = "password",
        d_host = "smtp.gmail.com",
        d_port  = "587", //465,587
        m_to = "email@gmail.com",
        m_subject = "Testing", …
Run Code Online (Sandbox Code Playgroud)

java groovy gmail smtp jakarta-mail

32
推荐指数
3
解决办法
11万
查看次数

愚蠢的Visual Studio待定更改问题

我最近从基于Java的项目切换到C#/ .net项目.我之前使用的IntelliJ具有更改列表的概念,您可以将待处理的更改组合在一起并单独检查每个组.

我在visual studio中的挂起更改窗口中遇到两个问题.

1)每当我检查任何内容时,visual studio都会检查列表中每个挂起的更改旁边的复选框,强制我取消选中它们中的每一个,这样我就不会意外地检查某些内容.这非常令人沮丧,因为有几个文件我需要保持更改以在本地正确运行我的代码.有没有办法更改此默认行为,以便在签入时不检查任何挂起的更改?

2)有没有办法将更改分组到列表中而不是一大堆更改?当我需要检查某些内容时,这会变得令人沮丧,但我必须搜索文件并检查相关的更改.我知道使用TFS存在搁置集,但这并没有为我减少,特别是因为我有几个已更改的文件,我需要保持更改才能在本地正确部署,我很少想要检查.

提前致谢!

version-control visual-studio

11
推荐指数
1
解决办法
4498
查看次数

推送配置更改后Gitosis不更新服务器配置

我使用以下的教程设置了gitosis:

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

我发现在gitosis.conf中添加适当的权限后,我无法推送和创建新的存储库.我会不断得到"读取访问被拒绝"错误.我最终检查了包含我更新的gitosis.conf文件的服务器上的实际存储库.但是,当我检查位于gitosis用户的主文件夹中的'.gitosis.conf'文件时,我发现它没有更新.一旦我用存储库中的文件替换了这个文件的内容,我就能够创建并使用新的存储库而没有任何问题.

有谁知道是什么原因引起的?我知道gitosis使用更新后的挂钩来适当地更新服务器,所以我认为问题很可能就在于此.

提前致谢!布赖恩

git gitosis

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

当尝试模拟rabbitmq ConnectionFactory时,Mockito在/然后返回时始终在Scala Test中返回null

我正在尝试使用scalatest和mockito来模拟RabbitMQ ConnectionFactory对象以返回模拟连接.以下是我正在使用的示例测试:

class RabbitMQMockTest extends FunSuite with MockitoSugar {
    test("RabbitMQ ConnectionFactory is correctly mocked") {
        def connectionFactory = mock[ConnectionFactory]
        def connection = mock[Connection]

        when(connectionFactory.newConnection()).thenReturn(connection)
        println(connectionFactory.newConnection())

        assert(connectionFactory.newConnection() != null)
    }
}
Run Code Online (Sandbox Code Playgroud)

这总是失败,println语句总是打印"null".我一起使用这些技术非常新,并且想知道是否有人有任何建议或者如果我做错了什么我可以告诉我.提前致谢!

scala mockito rabbitmq scalatest

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