webForumDet fria alternativet

Problem med verifiering av min EJB

Java

2 svar · 518 visningar · startad av jme

Medlem sedan maj 20012 237 inlägg
Frågan#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?

Medlem sedan sep. 2001961 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.

Medlem sedan maj 20012 237 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.

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)