Вот пошаговые инструкции, которые я собрал несколько месяцев назад для установки Wicket. Они перечисляют все, что я сделал, чтобы настроить Wicket на ванильный компьютер с установленным Eclipse.
Следуя инструкциям на Быстрый старт Wicket , сгенерировав эту команду Maven:
mvn archetype:create
-DarchetypeGroupId=org.apache.wicket
-DarchetypeArtifactId=wicket-archetype-quickstart
-DarchetypeVersion=1.4.1
-DgroupId=com.mycompany
-DartifactId=projName
Запускается над командой Maven из командной строки
- Соответствующие файлы, включая источник Wicket, загружались автоматически на основе POM.
- Ран
mvn eclipse:eclipse
для создания проекта Eclipse на основе выше
Импортированный проект в Eclipse с File > Import..., Existing Projects
Запустил Start.java
в тестовой папке и обнаружил, что тестовое приложение запущено и работает на http://localhost:8080
Дополнительно: поддержка стороннего кода, такого как Wicket Extensions
Добавление JAR-файла Wicket Extensions в каталог M2_REPO
вручную не будет работать.
Вместо этого запустите mvn clean dependency:copy-dependencies
после обновления POM. (Расширения Wicket включены, но закомментированы в POM по умолчанию.) Затем настройте путь сборки в Eclipse с помощью Add Variables...
(не Add JARs
), выберите M2_REPO
, нажмите Extend
, найдите нужный JAR (в этом чехол, Wicket Extensions).
Аналогичная процедура должна работать для других сторонних библиотек.
Изначально я собирался обновлять эту веб-страницу дополнительными инструкциями, но в последнее время я работал над другими вещами. Однако, в конце концов, я надеюсь получить инструкции о том, как настроить Wicket с Tomcat, а не полагаться исключительно на сервер Jetty, с которым он поставляется.
UPDATE
Инструкции по развертыванию в Tomcat приведены здесь:
Скачать и установить Apache Tomcat и Apache Ant .
Создайте следующую структуру каталогов:
\WicketTomcat
+---src
| +---main
| | +---java
| | | \---com
| | | \---HelloWicket
| | | HelloWorld.java
| | | HelloWorld.html
| | | HelloWorldApplication.java
| | \---webapp
| | \---WEB-INF
| | web.xml
| \---test
| \---java
+---lib
| junit.jar
| log4j.jar
| servlet-api.jar
| slf4j-api.jar
| slf4j-log4j.jar
| wicket.jar
| wicket-extensions.jar
+---target
build.xml
Заполните файлы следующим образом:
HelloWorld.java
package com.HelloWicket;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
public class HelloWorld extends WebPage {
public HelloWorld() {
add(new Label("message", "Hello, Wicket!"));
}
}
HelloWorld.html
<html>
<head>
<title>Wicket Tomcat test title</title>
</head>
<body>
<span wicket:id="message">Message goes here</span>
</body>
</html>
HelloWorldApplication.java
package com.HelloWicket;
import org.apache.wicket.Page;
import org.apache.wicket.protocol.http.WebApplication;
public class HelloWorldApplication extends WebApplication {
public HelloWorldApplication() {
}
/**
* @see org.apache.wicket.Application#getHomePage()
*/
@Override
public Class<? extends Page> getHomePage() {
return HelloWorld.class;
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Extremely simple example of deploying Wicket on Tomcat</display-name>
<context-param>
<param-name>configuration</param-name>
<param-value>development</param-value> <!-- Wicket mode (development or deployment) -->
</context-param>
<filter>
<filter-name>HelloWicket</filter-name> <!-- To be used in filter-mapping > filter-name below -->
<filter-class>
org.apache.wicket.protocol.http.WicketFilter
</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>
com.HelloWicket.HelloWorldApplication <!-- Fully qualified name of WebApplication class -->
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>HelloWicket</filter-name> <!-- Must match filter > filter-name above -->
<url-pattern>/*</url-pattern> <!-- Take control of all URLs that start with http://localhost:8080/HelloWicket/ -->
</filter-mapping>
</web-app>
<!--
After deploying to Tomcat, access with http://localhost:8080/HelloWicket/.
Source: http://wicket.apache.org/learn/examples/helloworld.html
-->
build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project default="war" name="HelloWicket" basedir=".">
<property name="final.name" value="HelloWicket" />
<property name="src.main.dir" value="src/main/java" />
<property name="src.test.dir" value="src/test/java" />
<property name="src.web.dir" value="src/main/webapp" />
<property name="lib.dir" value="lib" />
<property name="build.dir" value="target" />
<property name="build.main.classes" value="${build.dir}/classes" />
<property name="build.test.classes" value="${build.dir}/test-classes" />
<property name="build.test.reports" value="${build.dir}/test-reports" />
<property name="build.reports.dir" value="${build.dir}/reports" />
<property name="tomcat.dir" value="..\..\..\..\Program Files\Apache Software Foundation\apache-tomcat-7.0.22\webapps" />
<path id="build.classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<target name="clean">
<delete dir="${build.dir}" failonerror="false" />
<delete file="${final.name}.war" failonerror="false" />
</target>
<target name="init">
<mkdir dir="${build.dir}" />
</target>
<target name="compile" depends="init">
<mkdir dir="${build.main.classes}" />
<javac destdir="${build.main.classes}" target="1.6" source="1.6" srcdir="${src.main.dir}" classpathref="build.classpath" includeantruntime="false" />
<copy todir="${build.main.classes}">
<fileset dir="${src.main.dir}">
<include name="**/*.*" />
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
<target name="test-compile" depends="compile">
<mkdir dir="${build.test.classes}" />
<javac destdir="${build.test.classes}" target="1.6" source="1.6" srcdir="${src.test.dir}" includeantruntime="false">
<classpath>
<path refid="build.classpath" />
<pathelement path="${build.main.classes}" />
</classpath>
</javac>
<copy todir="${build.test.classes}">
<fileset dir="${src.test.dir}">
<include name="**/*.*" />
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
<target name="test" depends="test-compile">
<mkdir dir="${build.test.reports}" />
<junit dir="./" failureproperty="test.failure" printSummary="yes" fork="true" haltonerror="true">
<sysproperty key="basedir" value="." />
<formatter type="xml" />
<classpath>
<path refid="build.classpath" />
<pathelement path="${build.main.classes}" />
<pathelement path="${build.test.classes}" />
</classpath>
<batchtest todir="${build.test.reports}">
<fileset dir="${src.test.dir}">
<include name="**/*Test*.java" />
</fileset>
</batchtest>
</junit>
<mkdir dir="${build.reports.dir}" />
<junitreport todir="${build.reports.dir}">
<fileset dir="${build.test.reports}">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${build.reports.dir}" />
</junitreport>
</target>
<target name="war" depends="test">
<war destfile="${build.dir}/${final.name}.war" webxml="${src.web.dir}/WEB-INF/web.xml">
<lib dir="lib">
<include name="wicket*.jar" />
<include name="slf4j*.jar" />
<include name="log4j*.jar" />
<include name="servlet*.jar" />
</lib>
<classes dir="${build.main.classes}" />
<fileset dir="${src.web.dir}">
<include name="**/*" />
<exclude name="**/web.xml" />
</fileset>
</war>
</target>
<target name="deploy" depends="war">
<echo>Deploying .war to local Tomcat</echo>
<copy todir="${tomcat.dir}">
<fileset dir="${build.dir}" includes="${final.name}.war" />
</copy>
</target>
</project>
Как и в случае с первоначальным ответом, я разместил чуть более объяснительную версию этого ответа здесь , но этого действительно должно быть достаточно, чтобы вы начали.