小编The*_*eLQ的帖子

在Drupal 7中禁用预告片

我正在尝试禁用Drupal 7中的预告片.我发现的所有指南都与Drupal 6有关,或者使用未命名的插件.我只是安装了Drupal,而没有安装额外的模块.

我在哪里可以禁用Teaser功能?我需要一个模块吗?我真的不想修改主题或Drupal核心,因为它有点,hackish.

php drupal

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

从Maven设置TestNG的详细级别

当我正在运行测试时,我讨厌盯着闪烁的光标而不知道正在运行什么.为了解决这个问题,我在所有测试中添加了完成消息.然而,我意识到它是一个真正的hacky解决方案,并增加了绒毛.

假设TestNG的详细级别打印测试描述,我如何在Maven中设置详细级别?请注意,我没有test.xml文件,所以如果它是唯一的方法,那么我不知道如何让test.xml文件+ Maven的自动生成的test.xml文件一起工作.

java testng maven

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

Maven exec插件不能依赖于提供的依赖性?

在我的POM中,我有这种依赖性

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>0.10.0-RC1</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

现在我试图在Maven exec插件中使用它,如下所示:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2</version>
            <executions>
                <execution>
                    <id>delombok-source</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <executable>java</executable>
                <arguments>
                    <argument>-classpath</argument>
                    <classpath>
                        <dependency>org.projectlombok:lombok</dependency>
                    </classpath>
                    <argument>lombok.core.Main</argument>
                    <argument>delombok</argument>
                    <argument>src/main/java</argument>
                    <argument>-d</argument>
                    <argument>target/src-delomboked</argument>
                </arguments>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

但每次执行时exec:exec,我都会收到"java.lang.NoClassDefFoundError:lombok/core/Main"错误.一些测试显示这是因为依赖项是在提供的范围内声明的

为什么exec插件不能使用提供的依赖项?第二,有没有办法让exec插件在不改变依赖范围的情况下使用该依赖?

java maven

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

无法在NetBeans中导入sun.org.mozilla.javascript.internal

在我的java程序中,我大量使用了Rhino脚本引擎的Suns implmentation.然而,最近,我的JDK在编译时似乎不再自动导入rt.jar文件.

奇怪的是,NetBeans报告了0个实时错误,它们仅在执行完整的清理和构建时出现.在我导入NativeArray之前没有发生这种情况,所以我真的很困惑为什么它突然停止工作.

眼镜:

  • 操作系统 - Windows
  • Java版本 - java版"1.6.0_20"
  • Javac版本 - javac 1.6.0_20
  • NetBeans版本 - 6.9

检查它是否存在:

C:\Documents and Settings\LordQuackstar\Desktop\TestApp\src>javap sun.org.mozill
a.javascript.internal.WrappedException
Compiled from "WrappedException.java"
public class sun.org.mozilla.javascript.internal.WrappedException extends sun.or
g.mozilla.javascript.internal.EvaluatorException{
    static final long serialVersionUID;
    public sun.org.mozilla.javascript.internal.WrappedException(java.lang.Throwa
ble);
    public java.lang.Throwable getWrappedException();
    public java.lang.Object unwrap();
}

好吧它存在,所以这里是一些测试代码:

package testapp;

import sun.org.mozilla.javascript.internal.WrappedException;

public class Main {
    public static void main(String[] args) {
        WrappedException e = new WrappedException(null);
    }
}
Run Code Online (Sandbox Code Playgroud)

Netbeans输出:

init:
deps-clean:
Updating property file: C:\Documents and Settings\LordQuackstar\Desktop\TestApp\build\built-clean.properties
Deleting directory …

java netbeans importerror

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

两个单独的泛型类型具有相同的擦除?

我偶然发现了一个我从未见过的有趣错误,无法解释原因

考虑以下课程

public class Sandbox<A,B> {
 public void put(B b) {
 }
 public void put(A a) {
 }
}
Run Code Online (Sandbox Code Playgroud)

看起来对我的眼睛好.所以我编译它然后得到它

name clash: put(B) and put(A) have the same erasure
Run Code Online (Sandbox Code Playgroud)

咦?两种不同的泛型类型如何具有相同的签名?完全分开!

我可能遗漏了一些完全基本的东西,但我之前没遇到过这个问题.我已经创可贴通过调用方法解决了这一问题putA,并putB,但我真的很好奇,为什么首先发生这个错误.

有人会介意解释吗?

java generics

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

将环境变量传递给Maven中的已执行进程

我一直在墙上撞了大约一个小时:我正试图将一个简单的属性(java.library.path)传递给exec-maven-plugin.目标是将其与Netbeans右键单击文件>运行文件过程集成.

所以我把我的POM设置成这样:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.1.1</version>
            <configuration>
                <environmentVariables>
                    <java.library.path>native/win32-x86</java.library.path>
                </environmentVariables>
            </configuration>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

(我使用旧版本,所以我可以看到执行参数,但它完全可以重现1.2)

然后我右键单击我的文件并单击"运行文件".Netbeans开始这个过程:

 W:\programming\apache-maven-2.2.1\bin\mvn.bat -Dexec.classpathScope=runtime -Dexec.args=-classpath %classpath org.quackedcube.camera.CameraDemo -Dexec.executable=C:\Program Files\Java\jdk1.6.0_21\bin\java.exe -Dnetbeans.execution=true -Dmaven.repo.local=W:\programming\maven-repo process-classes exec:exec
Run Code Online (Sandbox Code Playgroud)

(原始的完整类路径执行已更改为exec:exec希望我的配置已应用)

但我的环境变量显然被忽略了,因为生成的执行程序是:

 Result of cmd.exe /X /C ""C:\Program Files\Java\jdk1.6.0_21\bin\java.exe" -classpath *snip* org.quackedcube.camera.CameraDemo" execution is: '1'.
Run Code Online (Sandbox Code Playgroud)

我试过了

  • 在enviornmentVariable标记内使用单独的Key和Value标记
  • 直接在enviornmentVariables标记内使用键和值标记(值得一试)
  • 绑定到一个阶段
  • 传递为maven arg并使用exec:java代替
  • 在项目配置页面中将-Djava.library.path = native/win32-x86作为Run参数和VM选项传递

一切都失败了.我真的很茫然.

我想这是在maven中使用JNI的缺点:你必须作为参数传递给测试,运行时,模块运行POM和父POM.

所以我的问题是:如何将java.library.path属性传递给已执行的文件?如果它与Netbeans运行文件功能集成将是很好的(因此我不必更改POM中的类名,构建,然后运行)

java maven-2 netbeans exec-maven-plugin

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

使用STARTTLS将套接字升级到SSLSocket:recv失败

我正在尝试使用STARTTLS将套接字升级到SSLSocket。在InspIRCd的Wiki上,这是应该如何工作的

>> STARTTLS
<< :test2.chatspike.net 670 nickname :STARTTLS successful, go ahead with TLS handshake
(SSL Handshake)
Run Code Online (Sandbox Code Playgroud)

所以在我的代码中,我已经写过(略有简化)

else if (code.equals("670")) {
    SSLSocketFactory sslSocketFactory = ((SSLSocketFactory) SSLSocketFactory.getDefault());
    SSLSocket sslSocket = (SSLSocket) sslSocketFactory.createSocket(
                        socket,
                        socket.getInetAddress().getHostAddress(),
                        socket.getPort(),
                        true);
    sslSocket.startHandshake();
    bufferedReader = new BufferedReader(new InputStreamReader(sslSocket.getInputStream(), getEncoding()));
    bufferedWriter = new BufferedWriter(new OutputStreamWriter(sslSocket.getOutputStream(), getEncoding()));
    socket = sslSocket;
}
Run Code Online (Sandbox Code Playgroud)

但是,无论是否有startHandshake(),我总是会收到一个recv失败(当我尝试从新的bufferedReader中读取时,我不会得到它

java.io.IOException: Can't connect to server
    at org.pircbotx.PircBotX.connect(PircBotX.java:472) [Exception handling]
    at org.pircbotx.PircBotX.connect(PircBotX.java:224) [Overridden constructor]
    at org.pircbotx.impl.PircBotXExample.main(PircBotXExample.java:185)
Caused by: java.net.SocketException: Software caused connection abort: recv failed
    at java.net.SocketInputStream.read(SocketInputStream.java:150)
    at …
Run Code Online (Sandbox Code Playgroud)

java irc ssl jsse

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

Class Generics打破了完全独立的方法

当我使用类Generics Today时,我发现了一个奇怪的问题:设置一些打破了一个完全独立的方法.

这是一个说明问题的小示例类.这段代码工作得很好

public class Sandbox {
    public interface ListenerManagerTest {
        public Set<Listener> getListeners();
    }

    public void setListenerManager(ListenerManagerTest listenerManager) {
        for (Listener curListener : listenerManager.getListeners())
            return;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,只要我使用类Generics,该getListeners()方法将返回Set<Object>而不是Set<Listener>

public class Sandbox {
    public interface ListenerManagerTest<E extends Object> {
        public Set<Listener> getListeners();
    }

    public void setListenerManager(ListenerManagerTest listenerManager) {
        for (Listener curListener : listenerManager.getListeners()) //Expected Listener, not Object
            return;
    }
}
Run Code Online (Sandbox Code Playgroud)

什么会导致这个错误?在##javaFreenode上信道说,这是因为编译时的糖果和我使用的是原始类型.但是原始类类型如何打破类中的所有泛型?以前怎么样?

java generics

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

在Spring中删除和重新创建数据库模式的新方法?

对于某些单元测试,我在每次测试后都会丢弃并重新创建整个数据库模式.它不完美,但它的工作原理.但是当我从Spring 3.0.6升级到3.1.0.RC2以获得对Hibernate 4的支持时,我使用的方法被删除了.

旧代码:

@BeforeMethod
public void setupSchema() {
    LocalSessionFactoryBean session = (LocalSessionFactoryBean) context.getBean("&sessionFactory");
    session.dropDatabaseSchema();
    session.createDatabaseSchema();
}
Run Code Online (Sandbox Code Playgroud)

我应该使用什么来重新创建3.1.0.RC2中的数据库模式?

编辑:请注意,这是针对hibernate4 LocalSessionFactoryBean,而不是hibernate3

java spring

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

多个fbAsyncInit?

在我的网站中,我正在使用Facebook JS SDK的异步加载.要实际设置它,我使用window.fbAsyncInit函数中的标准FB.init.

但问题是,在我的网站中,此功能在每个页面上.但是当我在子页面中时,由于我的网站设计,我不能直接添加到JS函数,我必须复制并粘贴整个函数并添加我的位.

我不认为多个fbAsyncInit是可能的,所以最好的方法是什么?

php facebook facebook-javascript-sdk

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