WildFly で実行されている Web アプリケーション内の nashorn から内部クラスにアクセスする必要があります。
次のコードは、私のマシンで正常に動作しています。
public class NashornTest {
public static void main(String[] args) throws ClassNotFoundException {
Class<?> cls = Class.forName("jdk.nashorn.internal.objects.ScriptFunctionImpl");
System.out.println(cls);
}
}
しかし、WildFly 内で実行すると、次のサーブレットが ClassNotFoundException をスローします。
@WebServlet("/nashorn")
public class NashornServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Class<?> cls = null;
try {
cls = Class.forName("jdk.nashorn.internal.objects.ScriptFunctionImpl");
} catch (ClassNotFoundException e) {
throw new ServletException(e);
}
}
}
サーバーログは次のとおりです: https://gist.github.com/csokol/b81633bdbfa09bb55e2b