Tag: web

如何递归地使用百里香叶渲染菜单

我想使用ul / li列表呈现HTML菜单。 我有这个类结构: public class MenuItem { private String name; private MenuItem parent; private List children; public MenuItem(String name,List children) { this.name = name; this.children = children; for (MenuItem child : children) { child.parent = this; } } public MenuItem(String name) { this.name = name; } public String getName() { return name; } public […]

Java – 如何使用HtmlUnit登录网站?

我正在编写一个Java程序来登录我学校用来发布成绩的网站。 这是登录表单的url: https : //ma-andover.myfollett.com/aspen/logon.do 这是登录表单的HTML: document.forms[0].elements[‘deploymentId’].value = ‘ma-andover’; $(function() { $(‘form’).attr(‘autocomplete’, ‘off’); var name = $(‘#username’); var password = $(‘#password’); name.attr(‘autocomplete’, ‘off’); password.attr(‘autocomplete’, ‘off’); if (name.val() == ”) { password.attr(‘disabled’,’disabled’); } }); Andover Public Schools Login ID   Password I forgot my password setTimeout(function(){window.location.reload(true);}, 1800000); 我试图使用以下代码登录: import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.HtmlForm; import com.gargoylesoftware.htmlunit.html.HtmlPage; public class […]

提高crawler4j的性能

我需要编写一个webscraper,它可以擦除大约1M个网站并将其标题,描述和关键字保存到一个大文件中(包含已删除的URL和相关的单词)。 应从大文件中提取URL。 我在1M URL文件上运行了Crawler4j,并使用以下命令启动了webcrawler: controller.start(MyCrawler.class, 20) 。 20是任意数。 每个爬网程序将生成的单词传递到阻塞队列,以便单个线程将这些单词和URL写入文件。 我使用了1个编写器线程,以便不在文件上同步。 我将爬网深度设置为0(我只需要抓取我的种子列表) 运行这个晚上后,我只下载了大约200K的URL。 我正在使用有线连接在一台机器上运行刮刀。 由于大多数URL都是不同的主机,我不认为礼貌参数在这里有任何重要性。 编辑 我尝试使用非阻塞启动启动Crawler4j,但它刚被阻止。 我的Crawler4j版本是:4.2。 这是我正在使用的代码: CrawlConfig config = new CrawlConfig(); List headers = Arrays.asList( new BasicHeader(“Accept”, “text/html,text/xml”), new BasicHeader(“Accept-Language”, “en-gb, en-us, en-uk”) ); config.setDefaultHeaders(headers); config.setCrawlStorageFolder(crawlStorageFolder); config.setMaxDepthOfCrawling(0); config.setUserAgentString(“testcrawl”); config.setIncludeBinaryContentInCrawling(false); config.setPolitenessDelay(10); PageFetcher pageFetcher = new PageFetcher(config); RobotstxtConfig robotstxtConfig = new RobotstxtConfig(); RobotstxtServer robotstxtServer = […]

eclipse中的Maven错误(pom.xml):无法转移org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4

我想使用Maven制作web项目自动导入我需要的所有库,所以我选择了”maven-archetype-webpp” 之后我在pom.xml文件上出现了这个错误: Description Resource Path Location Type Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4 from http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4 from/to central (http://repo.maven.apache.org/maven2): The operation was cancelled. pom.xml /SpringTuto line 1 Maven […]

如何修复/解决java.lang.reflect.InvocationTargetException

我有一个关于一个特别恼人的错误的问题,我无法弄清楚,更不用说克服了。 每当我尝试在我的网站上运行Java applet(Applet或JApplet)时,我都会将此错误视为弹出窗口: java.lang.reflect.InvocationTargetException 没有堆栈跟踪,没有行号,只是错误消息。 所以我用谷歌搜索其他任何人的解决方法(或理想的实际修复)但却找不到多少。 我已经尝试过我的代码的几种变体(有时候有一个JAR文件,有时候没有,有时是一个单独的类,有时候没有,有时候在一个包中使用匹配的目录结构,有时候没有包等等)但似乎无法越过这个讨厌的小儿子的臭虫。 🙂 举一个具体的例子,这是我最近的尝试; 首先是Java代码: package cmtoolbox; public class CMToolbox { public static void main(String[] args) { MainApplet a = new MainApplet(); } } 它设置的课程: package cmtoolbox; import javax.swing.JApplet; import javax.swing.JButton; public class MainApplet extends JApplet { public MainApplet() { JApplet main = new JApplet(); main.setSize(800,600); JButton test1 = new […]

关于在Java / Spring项目中组织版本化REST API代码的最佳实践(示例?)?

我很好奇,如果有人能指出我组织REST API代码版本化的好例子/最佳实践(基于uri,意思是“/ v1 / zzz”和“/ v2 / xxx”,甚至更好的东西依赖于Accept标头) – 在Java / Spring项目中? 我担心我现在的项目太复杂了,所以向别人学习会很好。 澄清:不确定我是否应该通过filter,然后使用一些设计模式来改变行为,但这将使我的filter相当复杂..或者可能是我没有考虑弹簧和DI的一些技巧,所以我可以使我的代码更清洁。 最简单的方法是在每种方法中都有一些策略模式,它们会有不同的版本,但它似乎也不太干净:-(

Tomcat无法启动(抛出java.net.BindException :)

我已经完成了以下设置来运行Java Web项目但不知何故我的Tomcat不是从Eclipse开始的: JAVA_HOME : C:\Program Files\Java\jdk1.6.0_03 PATH : C:\Program Files\Java\jdk1.6.0_03\bin CATALINA_HOME : D:\javaworkspaces\apache-tomcat-7.0.27 然后根据需要,我从Eclipse设置一个新服务器并提供Tomcat安装路径。 正如一些论坛所建议的,我已将tomcat-juli.jar添加到类路径中。 尽管如此,当我尝试启动Tomcat服务器时,我得到的错误是tomcat没有在45秒内启动。 我收到以下日志消息: Jul 26, 2012 5:49:34 PM org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre6\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Java\jdk1.6.0_03\bin;D:\eclipse-jee-indigo-SR2-win32\eclipse;;. Jul 26, 2012 […]

Vaadin vs. Bootstrap

我打算在客户端创建一个具有复杂表单和逻辑validation视图的应用程序。 我计划使用AJAX进行提交,并具有一些视觉吸引力。 我想要那些有使用Bootstrap和/或CoffeeScript和Vaadin开发经验的人的推荐。 我有两个选择: 使用Bootstrap / CoffeeScript和服务器站点的一些框架,例如Play Framework,Rails或Django Vaadin 关注我的标准与客户端JavaScript和/或HTML5validation以及使用Bootstrap编写的CSS和HTML代码中可能出现的复杂性有关。 在一个实际的ria应用程序中使用CoffeeScript而不是Vaadin值得吗? 我看到有很多人选择了Bootstrap,我确信他们有自己的理由。 帮助我做出决定。 一些相关文档也可能有所帮助。

Java Web应用程序中的内存泄漏

我有一个在Tomcat 7上运行的Java Web应用程序似乎有内存泄漏。 在负载下(使用JConsole确定),应用程序的平均内存使用量随时间线性增加。 在内存使用率达到稳定水平后,性能会显着下降。 响应时间从~100ms到[300ms,2500ms],因此这实际上导致了实际问题。 我的应用程序的JConsole内存配置文件: 使用VisualVM,我看到字符数组(即char [])使用的内存至少有一半,并且字符串的大多数(大致相同数量,300,000个实例)是以下之一:“分配失败” ,“复制”,“次要GC的结束”,所有这些似乎都与垃圾收集通知有关。 据我所知,该应用程序根本不监视垃圾收集器。 VisualVM找不到任何这些字符串的GC根,所以我很难跟踪它。 内存分析器堆转储: 我无法解释为什么内存使用情况会如此,但我有一个关于为什么性能一旦降低就会降级的理论。 如果内存碎片化,应用程序可能需要很长时间才能分配连续的内存块来处理新请求。 将其与内置的Tomcat服务器状态应用程序进行比较,内存会增加并保持稳定,但不会像我的应用程序那样达到很高的“底限”。 它也没有大量无法访问的char []。 Tomcat服务器状态应用程序的JConsole内存配置文件: Tomcat服务器状态applicationp的内存分析器堆转储: 这些字符串可以在哪里分配,为什么它们不被垃圾收集? 是否存在可能影响此问题的Tomcat或Java设置? 是否有特定的包可能会影响这个?

为什么dispatch会抛出“java.net.ConnectException:General SSLEngine …”和特定URL的“意外状态”exception?

我有以下非工作代码: object Main extends App { import dispatch._ def test(address: String) = { Await.result(Http.default(url(address).GET OK as.String), Duration.Inf) } // This works fine val s1 = test(“http://download.finance.yahoo.com/d/quotes.csv?s=MSFT&f=sohgbav”) println(s1) // This throws Exception 1 val s2 = test(“http://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=MSFT&apikey=demo&datatype=csv”) println(s2) // This throws Exception 2 val s3 = test(“https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=MSFT&apikey=demo&datatype=csv”) println(s3) } 我想知道为什么“s1”工作正常,而“s2”和“s3”抛出exception。 抛出的exception是: 例外1: [error] ! access URL […]