2016-09-12 31 views
1

私は自分の手に落ちたプロジェクトを再デプロイしようとしています。これにjspエラーIsUserInRole()など

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>2.5</version> 
    </dependency> 

、私は以下を含む、JSP-Sのエラーを取得しています:それは使用しての依存関係の中のjavax.servlet-APIとMavenプロジェクトです。

getIsUserInRole()メソッドは、HttpServletRequest型では未定義です。このラインで発見

複数の注釈: - 未定義の属性名 (ID)。 - 不明なタグ(キャンバス)。 - 未定義の属性名 (スタイル)。このため

、私は3.0.1にサーブレットのバージョンを変更:

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.0.1</version> 
    </dependency> 

しかし、私はまだ同じエラーを持っています。ビルドパス上のjstlバージョン(関連するもの)は1.2です。

これを修正するにはどうすればよいですか?

サーブレットコンテナには何らかの種類のservlet-apiを明示的に定義する理由は何ですか? その場合、JBossにサーブレットバージョン3.0.1を使用するように指示する方法はありますか?

Eclipse NeonでJBoss 7.1を実行しています。私はEclipse Marsで同じことを試してみました。

TIA。

// -------------------------------

EDIT:

getIsUserInRole() Eclipseの問題報告に登場する名前です。ここでのスナップショットです:

enter image description here

メソッド名がコードで正しく入力されています

<c:if test="${not empty pageContext.request.userPrincipal}"> 
    <c:if test="${pageContext.request.isUserInRole('ROLE_ADMIN')}"> 
       <button class="custombutton" id="admin" style="font-size: 150%; height:80px; width: 100%">Administration [Admin. Profile]</button> 

    </c:if> 
</c:if> 

また、Eclipseはすべてキャンバスitems--タグの警告を報告している、名前を属性などISNは「tはそれらを認識:

enter image description here

// -----------------

EDIT2:

このプロジェクトでは、Spring 3.2.8があります。何らかの形でサーブレットの定義を傍受できますか?しかし、pom.xmlの依存関係階層にはそれが示されていません。

また、私はプロジェクトの中でSpringの依存関係を変更していません。デプロイされ実行されているものと同じです。

これはビルドの問題のようですが、私はそれを見ることはできません。以前のバージョンはIntelliJに導入されました。

答えて

0

コンパイルエラーが発生するのは不思議ではありません。方法が間違って綴られています。isUserInRoleであり、getIsUserInRoleではありません。

${pageContext.request.userInRole('ROLE_ADMIN')} 

はなぜサーブレットコンテナがそれを持っていない、私は明示的にどのような種類のサーブレットAPIを定義しています:結果は、タグ内で、はあなたが常に動詞を省略しなければならない、ということでしょうか?もしそうなら、JBossにサーブレットバージョン3.0.1を使用するように指示する方法はありますか?あなたが実際にクラスパス上のJEEランタイム(servlet-api.jar)を配置するを必要とするので、コンパイルで

は、Webコンテナは、まだ利用できません。あなたはそれをうまくやった。

もしそうなら、JBossにサーブレットバージョン3.0.1を使用するように指示する方法はありますか?

AFAIK方法:使用するサーブレットコンテナ(およびバージョン)を選択し、特定のランタイムにバンドルされています。したがって、コンパイル時にそのランタイムに達する必要があります。 canvasタグに関する

警告:あなたはHTML5にコーディングされていることを確認:JSPの先頭にこの宣言を置く:

<%@ page language="java" 
    import="..." 
%><!DOCTYPE html> 
<html> 
    ... 
</html> 
+0

メソッドの名前はJSPで右です。 「取得」は、Eclipseが問題とマーカーウィンドウの両方でそれに先行しているものです。これについてQを更新する編集をご覧ください。 – user6762070

+0

OK。私の更新を読んでください。 –

+0

も役に立たなかった。私は単にjavax.servletをインポートしました。* – user6762070

関連する問題