我们在构建过程中使用ANT,并且没有计划在不久的将来更改它.
是否可以使用Maven来获取常见的Open Source jar文件(例如Log4J,SWT,JFace)并将它们放在我们项目的正确位置,这样我们就不必将它们存储在我们的版本控制中 - 最好不要创建主目录中的典型Maven-cache?
大多数教程提出了类似于以下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.
所以这就是挑战......我需要在野外随机网页中创建干净的HTML.我的目标是在一个页面中读取并将其传递给一个库,这将反过来给我一个完美的HTML格式.
听起来不那么厉害吧?毕竟,市场上的每个浏览器都能有效地应对格式错误的HTML的挑战,并将其转化为几乎每个页面加载都可渲染的东西.每个都有自己的略微特定的清理内容的算法(对于HTML <5来说是这样),但是他们倾向于非常好地捕捉我想要作为作者意图的内容.那么,为什么我不能为这项任务找到一个好的java库呢?
有一点需要提及的是,我对将HTML解析为XML并不感兴趣.我发现像NekoHTML,TagSoup,HtmlCleaner和JTidy这样的库(仅举几例)更侧重于解决将HTML转换为有效XML的问题,并且在此过程中,他们忽略了如何糟糕 - 格式化文档应重新构建.使用令人讨厌的HTML,他们经常不会捕获作者的意图并吐出与原始源完全不同的文档.对于这个项目,两个文件的呈现方式同样至关重要.
我非常喜欢Jericho HTML,但它似乎并不是这项工作的理想人选...至少在没有我付出很多努力的情况下.此外,Native依赖项是不行的,因此mozilla解析器已经完成.
任何人都可以帮助我寻找完美的HTML解析器吗?提前致谢!
我在资源包的循环中列出了一个字符串,字段名称列表.我创建一个对象,然后使用循环我想为该对象设置值.例如,对于对象
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)
和吸气者一样.我知道反思会有所帮助,但我无法做到.请帮忙.谢谢!
我刚刚切换到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
这是正常的吗?
这是我害怕的那些非常令人尴尬的问题之一.
我在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%肯定这是一个类路径问题,但我无法弄清楚如何解决它.
我将永远感谢任何帮助,并且品脱的习惯性提供始终如一.
首先十分感谢,
中号
我怎么能对数组使用动态内存分配?
例如,下面是一个数组,其中我从.txt文件中读取单个单词并在数组中逐字保存:
码:
char words[1000][15];
Run Code Online (Sandbox Code Playgroud)
这里1000定义了数组可以保存的单词数,每个单词可以包含不超过15个字符.
现在我希望该程序应该为它计算的单词数量动态分配内存.例如,.txt文件可能包含大于1000的单词.现在我希望程序应该计算单词数并相应地分配内存.
由于我们不能使用变量代替[1000],因此我对如何实现逻辑完全空白.请帮助我这方面.
我收到以下错误"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它不工作.这将是什么问题.解决方案请
我跑去brew install tomcat安装tomcat 8.
现在我需要把我的.war文件放进去CATALINA_BASE/webapps
我无法在计算机上的任何位置找到该目录.我怎样才能找到这个文件夹,这样我才能把它放在.war那里?
我需要在我的测试类的单个方法中更改我的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对我来说不起作用,因为它是在类/方法执行之后运行,而不是之前,我需要在运行刷新/重新加载之前执行一行代码.
有什么建议?我试着看一下正在运行的监听器/钩子,但是我没有看到一个明显的位置来插入自己来实现这种行为.