webForumDet fria alternativet

Problem med verifiering av min EJB

2 svar · 518 visningar · startad av jme

jmeMedlem sedan maj 20011 967 inlägg
#1

Hej!

Jag har boken Professionl EJB av WROX.

Jag försöker skapa ett exempel ur boken.
När jag försöker verifiera med Suns Deployment Tool så får jag följande fel:

Assertion:All methods of all interfaces must have an associated security permission.
The test generated the following exception: [ SimpleBean ].

Varför?

LimeMedlem sedan sep. 2001837 inlägg
#2

Hehe... någon har fuskat och börjat med exemplet... ;-)

När man exponerar en WebService eller en EJB så måste man tänka till lite på hur den ska få accessas. Olika användare har olika rättigheter och vissa kanske inte ska få accessa Admin-EJB-metoderna alls...

Därför måste man sätta rättigheterna för alla exponerade metoder som finns i en EAR-fil. Ett sätt är att använda sig av 'deploymenttool', se http://java.sun.com/j2ee/1.4/docs/tutorial/doc/Security4.html#wp473603

När vi utvecklar EJB med Eclipse så sätter vi automatiskt rättigheterna till None när vi testar och sedan klurar man ut riktiga rättigheterna när det skall till att driftas.

jmeMedlem sedan maj 20011 967 inlägg
#3

Jo ;)

Jag har läst början av boken, de två första kapitlen.

Jag fick det att fungera till slut, fast dock inte bokens exempel.
Jag prövade med en Suns egen tutorial ( http://java.sun.com/developer/onlineTraining/J2EE/Intro2/j2ee.html ). Hade enorma problem med den också.

Till slut, efter pillande så fungerar det, så nu har jag lyckats skapa min första EJB-servlet kombination. :birp

Använde Suns deploy tool för att deploya den.

Fast då används den inbyggda http-servern (tror det är nån gammal version av Tomcat). Ska nu i helgen försöka deploya enbart en EJB-böna för att sen försöka anropa den från Tomcat 5.

EJB verkar krångligt men intressant så jag tänker inte ge upp!
Men igår se rev jag mitt hår faktikst, hehe.

Tillbaks till guiden (se länken ovan)...

index.html:

      <FORM METHOD="GET" ACTION="CalculateBonus">
        <P>
          Enter Social Security Number:
        <INPUT TYPE="TEXT" NAME="ssn"/>
        <P>
          Enter Multiplier:
          <INPUT TYPE="TEXT" NAME="multiplier"/>
        <P>
        <INPUT TYPE="SUBMIT" VALUE="Submit"/>
        <INPUT TYPE="RESET"/>
      </FORM>

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee [url]http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd[/url]">
  <display-name>BonusWar</display-name>
  <servlet>
    <display-name>BonusCalculationServlet</display-name>
    <servlet-name>BonusCalculationServlet</servlet-name>
    <servlet-class>bonus.controllers.BonusCalculationServlet</servlet-class>
  </servlet>
       <jsp-config/>
</web-app>

Vad jag nu inte förstår är att hur fanken det där borde fungera??

I html-filen så anges i form-taggen; action="CalculateBonus"

Men sen i web.xml så heter klassen BonuscalculatorServlet.
Ingen mappning görs:

Texten nedan har jag själv lagt till efter deployningen(!!!).
Måste dock starta om Suns AppServer.

     <servlet-mapping>
            <servlet-name>BonusCalculationServlet</servlet-name>
            <url-pattern>/war-ic_war/CalculateBonus</url-pattern>
  </servlet-mapping>

Sen förstår jag heller inte varifrån war-ic_war plockas...
Jag vill själv bestämma den där delen.

Genererad på 378 ms · cache AV · v20260730165559-full.f96bc7eb