Buyruqlar satridan yaratishga urinib, va WAR fayli hosil qilamiz

Mening papkaning rejasi:

/web-inf/web.xml
/web-inf/classes/

HelloWorld.java:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet{ 
  public void doGet(HttpServletRequest request, 
  HttpServletResponse response)
  throws ServletException,IOException{
  response.setContentType("text/html");
  PrintWriter pw = response.getWriter();
  pw.println("<html>");
  pw.println("<head><title>Hello World</title></title>");
  pw.println("<body>");
  pw.println("

Hello World

");
  pw.println("</body></html>");
  }
}

Men quyidagilarni bajarishni xohlayman:

  1. har bir narsani buyruq satri orqali yaratish
  2. Tomcat veb-sahifalari katalogiga .war fayli orqali nashr etish

HelloWorld.java faylini qayerda qo'yishim kerak va uni buyruq satri bilan qanday tuzish kerak? HelloWorld.java ning chiqishi /classes/ papkasida joylashganligiga ishonaman.

Keyin .war faylini qanday yarataman?

Men mana bu kabi kompilyatsiya qilishni sinab ko'rdim:

javac HelloWorld.java

Va import bilan bog'liq xatolarga yo'l qo'ydim, ya'ni mening yo'limda kutubxonalarni topa olmadi. Java EE kutubxonasi yuklab olish va uni mening yo'limga qo'shish kerakmi?

2
Manba fayllari aslida IDE yordamida yaratilganmi yoki qo'lda hamma buyruq satridan yaratyapsizmi?
qo'shib qo'ydi muallif Steve Claridge, manba

3 javoblar

Kodingiz yadro Java-kutubxonasida bo'lmagan servlet API-ga bog'liq. Buni sinfi yo'lingizga qo'shishingiz kerak bo'ladi:

javac -classpath $TOMCAT_HOME/lib/servlet-api.jar yourpackage/HelloWorld.java

Urushlar bir xil fayl formatini JARlar bilan almashadi (ZIP UTF-8 fayl nomlari bilan ZIP.) Umuman, siz ular bilan ishlash uchun ZIP dasturlarini ishlatishingiz mumkin.

Urush strukturasi shunday bo'lishi mumkin:

index.html
foo.jsp
WEB-INF/classes/yourpackage/HelloWorld.class
WEB-INF/web.xml

Yuqorida sizning .java dosyaningizda to'plamingizning paketini toping. deklaratsiyasi mavjud. Standart paketdan saqlanish kerak.

4
qo'shib qo'ydi

Agar bu faqatgina o'yinchoqli loyiha bo'lsa, u sizning vaqtingizga to'g'ri kelmasligi mumkin, lekin sizga kerakli bo'lgan barcha kutubxonalarning kuzatuvini tez orada boshqarib bo'lmaydigan vazifaga aylantirishi uchun jiddiy qurish vositasini taklif qilishingizni tavsiya qilaman. Foydalanadiganim Maven , ammo muqobilliklar mavjud.

2
qo'shib qo'ydi

JAR buyrug'idan foydalanish va classpathga bog'liqliklar kiritish kerak

1
qo'shib qo'ydi