小编axe*_*rod的帖子

Intellij远程调试:更改连接超时

我正在尝试调试一台位于中国(离这里很远)的机器,并且连接速度非常慢。intellij 远程调试器的超时时间很短,因此我收到无法打开调试器端口:java.net.ConnectException“连接超时:”

而且我无法调试。是否可以增加连接超时时间?如何?

debugging intellij-idea

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

类加载器之间的反射参数类型不匹配

对于向后兼容性测试,我正在创建我自己的类加载器来加载我以前版本的一些代码。在我拥有自定义对象(来自较旧的自定义类)之后,我将使用反射调用它的 API。但是,当此类 API 方法具有自定义参数(不是 java 库的一部分)时,例如:

public void MyMethod(MyObj a) {}
Run Code Online (Sandbox Code Playgroud)

当我使用反射调用此方法时,我得到:

java.lang.IllegalArgumentException:参数类型不匹配

因为我从默认类加载器传递 MyObj 而该方法期望从自定义类加载器获取 MyObj。

我用来调用该方法的代码(而代理是由我的自定义类加载器加载的,代理的 api 方法的参数来自我的测试类,该类由默认类加载器加载)

        private Object invoke(Object... args) {
            try {
                final String methodName = getMethodName();
                final Class<?>[] methodArgs = getMethodArgs(methodName);
                return agent.getClass().getMethod(methodName, methodArgs).invoke(agent, args);

            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            }
            return null;
        }

        private Class<?>[] getMethodArgs(String methodName) {
            final Method[] declaredMethods = agent.getClass().getDeclaredMethods();
            for (Method method : declaredMethods) {
                if …
Run Code Online (Sandbox Code Playgroud)

java reflection classloader

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

XSD:元素和属性之间的选择

我想要一个具有内容或某个属性的元素,但不能同时具有两者。元素可以如下所示:

<Location ref="blah"/>
Run Code Online (Sandbox Code Playgroud)

或这个:

<Location> <aaaLocation>...</aaaLocation> <Location>
Run Code Online (Sandbox Code Playgroud)

但不是这样的:

 <Location ref="blah"> <aaaLocation>...</aaaLocation> <Location>
Run Code Online (Sandbox Code Playgroud)

我尝试了一些变化:

<xs:complexType name="FatherOfLocatiion">
        <xs:choice>
            <xs:element name="Location">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name ="aaaLocation" type="Alocation"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Location">
                <xs:complexType>
                    <xs:attribute name="ref" type="xs:string" />
                </xs:complexType>
            </xs:element>
        </xs:choice>
        <xs:attribute name="name" type="xs:string" use="required"/>
    </xs:complexType>
Run Code Online (Sandbox Code Playgroud)

该模式在XML spy等工具中有效,但是当我尝试使用jaxb从中生成对象时,出现以下错误:

模型组中会出现多个名称为“ Location”且具有不同类型的元素。

还有其他方法可以强制执行吗?

xml xsd jaxb

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

Solr在查询中处理空格和其他特殊标签,如"OR"

我有一个文本字段,其定义如下:

<fieldType name="myTextField" class="solr.TextField" positionIncrementGap="100">
            <analyzer type="index">
                <tokenizer class="solr.StandardTokenizerFactory"/>
                <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.NGramFilterFactory" minGramSize="1"
                        maxGramSize="40"/>

            </analyzer>
            <analyzer type="query">
                <tokenizer class="solr.StandardTokenizerFactory"/>
                <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
                <filter class="solr.LowerCaseFilterFactory"/>
            </analyzer>
        </fieldType>
Run Code Online (Sandbox Code Playgroud)

现在,我有一个包含此文本的字段:"嗨,这是关于solr的问题"

另一个包含此文本的字段:"aaa solr bbb"

当我的查询字符串是"about solr"时,我得到两个字段作为结果,虽然我只想要第一个,因为它是唯一包含所有字符(包括空格)的字符串.这不仅发生在空白区域,还与其他特殊字符如":"一起发生.用括号搜索(关于solr)没有用.

注意:在搜索之前我正在逃避我的字符串:

String s1 = ClientUtils.escapeQueryChars(s);
Run Code Online (Sandbox Code Playgroud)

有什么建议?

solr tokenize

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

强制派生实现做某事,最佳做法是什么?

我甚至不确定这个问题是否有答案\ sutiable design但值得一提......我有一个抽象类(servlet)从一些客户端获取数据(其中包括)processResults方法(抽象),以及onResultsReceived(不是抽象的)

public abstract class dataServlet implements HttpServlets {
      protected onDataReceived(){//blah blah}
      public abstract void processData();
}
Run Code Online (Sandbox Code Playgroud)

我onDataReceived方法我正在为processData方法的所有实现做一些必要的常见事情.如果明天有人会添加dataServlet的新实现,我想确保他将在他的processData实现中调用onDataReceived.有没有办法,已知设计这样做?

java oop design-patterns

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