كيف يمكنني استضافة ملف .jar مباشرة داخل الحرب في Wildfly/JBoss؟
سؤال
لذلك لدي سؤال بسيط جدا.لدي ملف .war تافه إلى حد ما والذي سيستضيف بكل سرور أي نوع من الملفات التي أستخدمها - باستثناء ملف .jar.
إليك ملف .war الخاص بي:
ويب-INF/web.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" />
ميتا-INF/MANIFEST.MF:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.2
Created-By: 1.8.0_05-b13 (Oracle Corporation)
والملفات الأربعة التالية:
index.html
folder/jar.jar
folder/jar.zip
folder/index.html
أقوم بنشر حربي على خادم Wildfly-8.1.0 باسم "testwar.war".عندما أفعل ذلك، يمكنني الوصول إلى جميع الملفات باستثناء المجلد/jar.jar عبر عنوان URL عادي تمامًا:
http://localhost:8080/testwar/
http://localhost:8080/testwar/folder/
http://localhost:8080/testwar/folder/jar.zip
كل هؤلاء يعملون.لكن
http://localhost:8080/testwar/folder/jar.jar
إرجاع 404.
لا أستطيع طوال حياتي معرفة سبب عدم ظهور ملف الجرة، أو كيفية إصلاحه.أي أفكار؟
المحلول
يحتوي الخادم الافتراضي لـ Wildfly/Undertow على قائمة بالامتدادات المسموح بها وغير المسموح بها والتي يمكن تهيئتها في web.xml
عبر معلمات init. jar
غير مسموح به بشكل افتراضي.
أضف ما يلي إلى الخاص بك web.xml
لتمكين jar
امتداد:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>io.undertow.servlet.handlers.DefaultServlet</servlet-class>
<init-param>
<param-name>default-allowed</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>allowed-extensions</param-name>
<param-value>jar</param-value>
</init-param>
<init-param>
<param-name>disallowed-extensions</param-name>
<param-value>exe,bat,sh</param-value>
</init-param>
</servlet>
نصائح أخرى
لا تنتمي إلى StackOverflow