小编use*_*270的帖子

使用SAXParser时为什么会出现"MalformedURLException:no protocol"?

我正在将代码从应用程序的一部分(applet)复制到应用程序内部.我正在将XML解析为String.自从我解析XML以来已经有一段时间了,但是从抛出的错误看起来它可能与找不到.dtd有关.堆栈跟踪使得很难找到错误的确切原因,但这里是消息:

java.net.MalformedURLException: no protocol: <a href="http://www.mycomp.com/MyComp.dtd">http://www.mycomp.com/MyComp.dtd</a>
Run Code Online (Sandbox Code Playgroud)

并且XML将此作为第一对行:

<?xml version='1.0'?>
<!DOCTYPE MYTHING  SYSTEM '<a href="http://www.mycomp.com/MyComp.dtd">http://www.mycomp.com/MyComp.dtd</a>'>
Run Code Online (Sandbox Code Playgroud)

这是相关的代码片段

class XMLImportParser extends DefaultHandler {

  private SAXParser m_SaxParser = null;
  private String is_InputString = "";

  XMLImportParser(String xmlStr) throws SAXException, IOException {
    super();
    is_InputString = xmlStr;
    createParser();
    try {
      preparseString();
      parseString(is_InputString);
    } catch (Exception e) {
       throw new SAXException(e); //"Import Error : "+e.getMessage());
    }
  }

  void createParser() throws SAXException {
    SAXParserFactory factory = SAXParserFactory.newInstance();
    factory.setValidating(true);
    try {
        factory.setFeature("http://xml.org/sax/features/namespaces", true);
        factory.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
        m_SaxParser = factory.newSAXParser();
        m_SaxParser.getXMLReader().setFeature("http://xml.org/sax/features/namespaces", true); …
Run Code Online (Sandbox Code Playgroud)

java xml saxparser

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

如何使用 mongo 导出以字符串格式导出日期时间字段?

我正在尝试使用 mongoexport 从 mongo 导出整个集合。我发现的关于日期的大多数答案都涉及查询。我不做查询。我将整个表转储为 JSON 格式。日期时间字段的导出如下:

"dateOfBirth": {
  "$date": "1999-02-02T00:00:00.000Z"
}
Run Code Online (Sandbox Code Playgroud)

我只想要日期时间字段的字符串表示形式,所以它看起来像:

"dateOfBirth": "1999-02-02T00:00:00.000Z"
Run Code Online (Sandbox Code Playgroud)

我不知道我们的 mongo 的确切版本,但它是最近的。

我该怎么做呢?

export mongodb mongoexport

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

TypeError, __init__() 缺少 1 个必需的位置参数:'get_response' 在 python 中是什么意思?

我正在关注https://www.howtographql.com/graphql-python/4-authentication/ 上的 graphql python 教程。它在前 3 个部分运行良好,但在身份验证部分我遇到了这个问题。

我正在学习 python,不知道 Django 或 graphql,所以一次消化很多,但到目前为止一切正常。也不确定要在此处包含哪些相关位。

我遵循了所有说明。当我去我当地的项目站点时localhost:8000/graphql/,我得到

TypeError at /graphql/
__init__() missing 1 required positional argument: 'get_response'

这是我的 settings.py 的相关片段:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
]

GRAPHENE = {
    'SCHEMA': 'hackernews.schema.schema',
    'MIDDLEWARE': ['graphql_jwt.middleware.JSONWebTokenMiddleware', ],
}

AUTHENTICATION_BACKENDS = [
    'graphql_jwt.backends.JSONWebTokenBackend',
    'django.contrib.auth.backends.ModelBackend',
]
Run Code Online (Sandbox Code Playgroud)

我还在我的主 schema.py 中导入了 graphql_jwt

这是某种堆栈跟踪

Environment:


Request Method: GET
Request URL: http://localhost:8000/graphql/

Django Version: 2.1.4
Python Version: 3.7.4
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes', …
Run Code Online (Sandbox Code Playgroud)

python django graphql

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

如何阻止我的 Rails 应用程序被机器人攻击?

我什至不确定我使用的术语是否正确,无论这是否真的是机器人。我不想使用“垃圾邮件”这个词,因为我没有创建/发送垃圾邮件的评论或帖子。它看起来更像是有什么东西向我的域发出相同的重复请求,这让我认为它是某种机器人。

我已经向“公众”开放了我的第一个 Rails 应用程序,这实际上是一小群用户,目前不到 50 人。那是上周五的事了。我今天开始遇到性能问题,所以我查看了日志,发现了大量这样的 RoutingErrors

ActionController::RoutingError (No route matches "/portalApp/APF/pages/business/util/whichServer.jsp" with {:method=>:get}):
Run Code Online (Sandbox Code Playgroud)

他们正在填充日志,我假设这是导致速度减慢的原因。请注意末尾的 .jsp,这是一个 Rails 应用程序,因此我的应用程序中没有像这样的远程 URL。我的意思是,我什至没有 /portalApp,所以我不知道它来自哪里。

这是在 Dreamhost 托管的,我与他们的一位支持人员聊天,他推荐了几个详细介绍使用 htaccess 来阻止事物的网站。但看起来您需要知道请求来自的 IP 或域,但我不知道。

我怎样才能阻止这个?如何从请求中找到 IP 或域?还有其他建议吗?


跟进信息:

查看访问日志后,看起来它不是机器人。也许我没有正确读取日志,但有来自同一 IP 的有效 url 请求(从我的 Flex 应用程序内生成)。所以现在我想知道是否是某种插件生成请求,但我真的不知道。现在我想知道是否可以根据模式阻止某个 url 请求,但我认为这是一个单独的问题。

performance ruby-on-rails

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

如何知道GWT和IE8中的RPC对象是否"太大"?

我有一个在Firefox中运行良好的应用程序但是当我在IE8中测试时,我遇到了一个奇怪的错误: 'Stack overflow at line: 0'

在GWT讨论组建议它可能与从RPC调用返回的大型/复杂对象有关之后,我能够将问题缩小到我的一个RPC服务器调用,这些调用确实返回一个大而复杂的对象.

如果错误是由于大对象太大或太复杂,我怎么知道这个?"太大"的门槛在哪里?

GWT讨论的进一步评论表明Collections对象可能是问题所在,但这是来自GWT开发人员的另一个经验.这是由GWT文档或团队在任何地方记录的吗?

但即便如此,问题仍然存在 - 我怎么知道什么时候'足够小'?

gwt gwt-rpc internet-explorer-8

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

为什么编译器找不到"MappingProcessor"注释处理器?

我在OSX 10.9.5上使用IntelliJ 13.0.2,使用java 1.8.尝试在IntelliJ中运行单元测试时出现此错误.当我在命令行通过maven运行编译或测试时,它运行正常.

我已进入文件 - >其他设置 - >默认设置 - >编译器 - >注释处理器并取消选中启用注释处理.我也尝试了选中启用注释处理,并保留选中的默认值.

我们正在运行我们的测试

@RunWith(MockitoJUnitRunner.class)
Run Code Online (Sandbox Code Playgroud)

它找不到的Annotation处理器是org.mapstruct.ap.MappingProcessor.我不知道从哪里得到它,它不在我们的进口中.也许是Mockito的依赖?

java annotations

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

mongodb Java 驱动程序构建错误:无法访问 com.mongodb.client.result.InsertOneResult,未找到类文件

我正在关注最新 (4.2.2) Mongodb Java 驱动程序的安装和快速入门。我收到此编译错误:

错误:(29, 29) java: 无法访问 com.mongodb.client.result.InsertOneResult 未找到 com.mongodb.client.result.InsertOneResult 的类文件

这是一个更大项目的一部分,那么类路径上的某个地方可能有另一个版本的 mongo 吗?
pom 只有一个,就是这个,直接来自安装页面:

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongodb-driver-sync</artifactId>
    <version>4.2.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我正在使用 IntelliJ,在它的 mongo 外部依赖项中,它有这些:

org.mongodb:bson:3.8.2
org.mongodb:mongodb-driver-core:3.8.2
org.mongodb:mongodb-driver-sync:4.2.2

这是代码:

import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

import java.util.Arrays;

public class MongoTest {

    public static void main(String[] args) {
        MongoTest mongoTest = new MongoTest();
        mongoTest.init();
    }

    public void init() {
        MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
        MongoDatabase myTestDb = mongoClient.getDatabase("myTestDb");
        MongoCollection<Document> collection = myTestDb.getCollection("test");

        Document doc …
Run Code Online (Sandbox Code Playgroud)

java mongodb

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

如果有焦点,如何让空格键上的按钮不亮?

我试图阻止的行为是在用户点击按钮后,按钮保持焦点,然后如果用户点击空格键,则按钮再次触发.所以我认为可以通过将焦点设置在别处,或者通过让按钮忽略空格键来解决.我已经尝试在按钮上添加以下keyDown事件侦听器,但它不起作用.

private function btn_keyDown(event:KeyboardEvent):void {
  // try to ignore spaces, i.e. don't click on SPACE when it has focus
  if (event.keyCode == Keyboard.SPACE) {
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试通过执行以下操作来更改焦点,在单击按钮时调用的函数结束时:

stage.focus = parent;
Run Code Online (Sandbox Code Playgroud)

但那也不起作用.

apache-flex

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

加载静态缓存的最佳模式或方法是什么?

假设我有以下内容(假设仅限于java 1.4,因此没有泛型):

public class CacheManager {
    static HashMap states;
    static boolean statesLoaded;

    public static String getState(String abbrev) {
        if(!statesLoaded) {
            loadStates();
        }
        return (String) states.get(abbrev);
    }

    private static void loadStates() {
        //JDBC stuff to load the data
        statesLoaded = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

在像Web应用程序服务器这样的高负载多线程环境中,如果> 1线程试图同时获取并加载缓存,理论上这可能会出现问题.(进一步假设Web应用程序上没有用于初始化缓存的启动代码)

只是使用Collections.synchronizedMap足以解决这个问题吗?如果很多线程正在访问它,那么在执行get()时返回的synchronizedMap是否存在性能问题?

或者更好的是拥有一个非同步的HashMap,而是在load方法或boolean变量上同步?我认为如果你同步其中任何一个,你可能会最终锁定该类.

例如,如果load方法已同步,那么如果两个线程同时进入getStates()方法,并且两者都看到statesLoaded为false.第一个获取方法的锁定,加载缓存并将statesLoaded设置为true.不幸的是,第二个线程已经评估了statesLoaded为false,并且一旦锁定空闲就进入load方法.它不会继续并再次加载缓存吗?

java static

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

为什么redis使用spring和default config通过JUnit运行NullPointerException?

我工作在OS X上的Java 7,春季3.2,jedis 2.1.0,弹簧数据redis的1.1.1,试图让最赤裸的Redis设置了默认的配置redis的工作.意思是我没有在redis.conf文件中添加任何内容.当我做

redis-server
Run Code Online (Sandbox Code Playgroud)

它说它已经启动并准备接受端口6379上的连接.

起初,我试图与该RedisTemplate和JedisConnectionFactory注解的bean,但春天抱怨它无法创建或找到这些秘密,所以我就是这么做的.也许这表明了一个更基本的问题.所以我用下面稍长的版本来做,但这至少看起来是创建Redis和Jedis组件.

这是我的测试:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader=AnnotationConfigContextLoader.class)
public class RedisTest {
    @Configuration
    static class ContextConfiguration {


    }

    RedisTemplate<String, String> template;

    private JedisConnectionFactory getJedisConnectionFactory() {
        JedisConnectionFactory factory = new JedisConnectionFactory();
        factory.setHostName("localhost");
        factory.setPort(6379);
        factory.setUsePool(true);
        return factory;
    }

    private RedisTemplate<String, String> getRedisTemplate() {
        RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();
        redisTemplate.setConnectionFactory(getJedisConnectionFactory());
        return redisTemplate;
    }

    @Test
    public void testRedis() {
        System.out.println("testing redis ");

        template = getRedisTemplate();

        template.opsForValue().set("Key", "Value");
        String value = template.opsForValue().get("Key");
        System.out.println("got value : " + value);
    }
}
Run Code Online (Sandbox Code Playgroud)

并且错误堆栈跟踪的顶部是 …

java spring redis

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