小编Jig*_*shi的帖子

使用Maven只是为了获取一些库jar

我们在构建过程中使用ANT,并且没有计划在不久的将来更改它.

是否可以使用Maven来获取常见的Open Source jar文件(例如Log4J,SWT,JFace)并将它们放在我们项目的正确位置,这样我们就不必将它们存储在我们的版本控制中 - 最好不要创建主目录中的典型Maven-cache?

java ant maven-2 maven

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

如何在没有文件扩展名的情况下配置JSF url映射?

大多数教程提出了类似于以下web.xml的默认JSF配置:

<context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
</context-param>


<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

使用此配置,如果相应的URL以文件扩展名.jsf结尾(例如http://localhost/welcome.jsf),则只能通过Faces Servlet找到我的webapp中相应的*.xhtml文件.是否可以配置web.xml,以便使用相同的*.xhtml文件将不以.jsf结尾的URL处理为JSF页面?

换句话说,我想拥有不依赖于服务器端实现的URL.

java url jsf url-rewriting java-ee

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

用于清理HTML的Java库就像浏览器一样

所以这就是挑战......我需要在野外随机网页中创建干净的HTML.我的目标是在一个页面中读取并将其传递给一个库,这将反过来给我一个完美的HTML格式.

听起来不那么厉害吧?毕竟,市场上的每个浏览器都能有效地应对格式错误的HTML的挑战,并将其转化为几乎每个页面加载都可渲染的东西.每个都有自己的略微特定的清理内容的算法(对于HTML <5来说是这样),但是他们倾向于非常好地捕捉我想要作为作者意图的内容.那么,为什么我不能为这项任务找到一个好的java库呢?

有一点需要提及的是,我对将HTML解析为XML并不感兴趣.我发现像NekoHTML,TagSoup,HtmlCleaner和JTidy这样的库(仅举几例)更侧重于解决将HTML转换为有效XML的问题,并且在此过程中,他们忽略了如何糟糕 - 格式化文档应重新构建.使用令人讨厌的HTML,他们经常不会捕获作者的意图并吐出与原始源完全不同的文档.对于这个项目,两个文件的呈现方式同样至关重要.

我非常喜欢Jericho HTML,但它似乎并不是这项工作的理想人选...至少在没有我付出很多努力的情况下.此外,Native依赖项是不行的,因此mozilla解析器已经完成.

任何人都可以帮助我寻找完美的HTML解析器吗?提前致谢!

html java html-parsing

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

如何使用反射定义动态setter和getter?

我在资源包的循环中列出了一个字符串,字段名称列表.我创建一个对象,然后使用循环我想为该对象设置值.例如,对于对象

Foo f = new Foo();
Run Code Online (Sandbox Code Playgroud)

使用参数param1,我有字符串"param1",我想以某种方式将"set"与"set"+"param1"连接起来,然后将其应用于f实例:

f.setparam1("value");
Run Code Online (Sandbox Code Playgroud)

和吸气者一样.我知道反思会有所帮助,但我无法做到.请帮忙.谢谢!

java reflection getter setter

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

JBoss Weld + java.lang.OutOfMemoryError:PermGen空间

我刚刚切换到Weld来使用CDI JSF 2 Beans +会话范围.

这是我的maven依赖:

    <dependency>
        <groupId>org.jboss.weld.servlet</groupId>
        <artifactId>weld-servlet</artifactId>
        <version>1.0.1-Final</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

这是我的web.xml中的条目:

<listener>
  <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)

我立即注意到的一件事是我只需要重新加载我的tomcat 7 2次,java.lang.OutOfMemoryError: PermGen space并将显示在catalina.out日志文件中.

在使用Weld之前,我可以在不使用java.lang.OutOfMemoryError的情况下安全地重新加载我的tomcat 7超过10次.我认为在catalina.sh中增加我的Xmx选项会有所帮助,但这并不符合我的经验.JAVA_OPTS=-Xmx1024m

这是正常的吗?

java jsf cdi jsf-2 jboss-weld

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

线程"main"中的异常java.lang.NoClassDefFoundError:DiServer <错误名称:ds/DiServer>

这是我害怕的那些非常令人尴尬的问题之一.

我在Eclipse中有一个程序:

    package ds;
    public class DiServer {
 public static void main(String[] args) {
    int foo = 0;
    int bar = 0;
    /*bla*/
    }
    }
Run Code Online (Sandbox Code Playgroud)

简单吧?在Eclipse中运行时,这完全正常.

我想从命令行运行它.我复制了bin文件夹,里面有ds文件夹,ds和.classpath中有DiServer.class

我已将这些放入一个单独的文件夹,C:\ My Documents\DiTest,打开命令提示符,转到C:\ My Documents\DiTest\ds \并键入 java DiServer

我得到的错误是 Exception in thread "main" java.lang.NoClassDefFoundError: DiServer <wrong name:ds/DiServer> ... Could not find the main class: DiServer. Program will exit.

我试过java -classpath.DiServer,java -classpath ../ .. DiServer,将.classpath移动到ds文件夹,但我似乎无法绕过这个.我99%肯定这是一个类路径问题,但我无法弄清楚如何解决它.

我将永远感谢任何帮助,并且品脱的习惯性提供始终如一.

首先十分感谢,

中号

java eclipse

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

为数组使用动态内存分配

我怎么能对数组使用动态内存分配?

例如,下面是一个数组,其中我从.txt文件中读取单个单词并在数组中逐字保存:

码:

char words[1000][15];
Run Code Online (Sandbox Code Playgroud)

这里1000定义了数组可以保存的单词数,每个单词可以包含不超过15个字符.

现在我希望该程序应该为它计算的单词数量动态分配内存.例如,.txt文件可能包含大于1000的单词.现在我希望程序应该计算单词数并相应地分配内存.

由于我们不能使用变量代替[1000],因此我对如何实现逻辑完全空白.请帮助我这方面.

c memory arrays dynamic-memory-allocation

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

java.lang.OutOfMemoryError:PermGen空间

我收到以下错误"http-9000-5"java.lang.OutOfMemoryError:PermGen space

org.apache.catalina.core.ApplicationDispatcher为servlet jsp调用SEVERE:Servlet.service()抛出异常java.lang.OutOfMemoryError:PermGen空间.

我的应用程序使用axis2.I增加了堆大小1024mb.But它不工作.这将是什么问题.解决方案请

java permgen tomcat6

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

Mac上的Tomcat 8的CATALINA_BASE/webapps文件夹在哪里?

我跑去brew install tomcat安装tomcat 8.

现在我需要把我的.war文件放进去CATALINA_BASE/webapps

我无法在计算机上的任何位置找到该目录.我怎样才能找到这个文件夹,这样我才能把它放在.war那里?

java macos tomcat catalina tomcat8

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

在测试方法中重新加载或刷新Spring应用程序上下文?

我需要在我的测试类的单个方法中更改我的applicationContext中活动的Spring配置文件,为此我需要在刷新竞赛之前运行一行代码,因为我使用的是ProfileResolver.我尝试过以下方法:

@WebAppConfiguration
@ContextConfiguration(locations = {"/web/WEB-INF/spring.xml"})
@ActiveProfiles(resolver = BaseActiveProfilesResolverTest.class)
public class ControllerTest extends AbstractTestNGSpringContextTests {
    @Test
    public void test() throws Exception {
        codeToSetActiveProfiles(...);
        ((ConfigurableApplicationContext)this.applicationContext).refresh();
        ... tests here ...
        codeToSetActiveProfiles(... back to prior profiles ...);
        ... ideally refresh/reload the context for future tests
    }
}
Run Code Online (Sandbox Code Playgroud)

但我得到:

java.lang.IllegalStateException: GenericApplicationContext does not support multiple refresh attempts: just call 'refresh' once
Run Code Online (Sandbox Code Playgroud)

DirtiesContext对我来说不起作用,因为它是在类/方法执行之后运行,而不是之前,我需要在运行刷新/重新加载之前执行一行代码.

有什么建议?我试着看一下正在运行的监听器/钩子,但是我没有看到一个明显的位置来插入自己来实现这种行为.

java testng spring spring-test applicationcontext

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