Java

Tomcat Java Transaction Api

Fórumok

Sziasztok!
Épp egy egyetemi projektben vagyok, ahol akadt az a kisebb gond, hogy glassfish-ről át kell térnünk Tomcat-re.
Netbeans-el fejlesztek, mint kezdő EE-s, és a projekthez kell JSF, JPA és a JTA. Nos utóbbihoz a netbeans-be nincs "beleégetett" lib, legalábbis én nem találtam, és neten keresgéltem, de nincs valakinek valami tapasztalata/ötlete, hogy melyik JTA implementációt érdemes Tomcat-tel használni? JOTM, BTM, stb?

HTML formok automatizálása Java-val

Fórumok

Üdv!

A következő problémába szaladtam bele.
Adott pár szerver, sok-sok weboldallal. Amikor frissül a portál rajta (PHP alapú), akkor a következőt kellene tenni: bejelentkezni adminként, majd meghívni a $SITENEVE/update.php fájlt. Itt kattintani egy gombra, aztán bejön egy új oldal, ott is kattintani (tehát formot elküldeni; itt már neccesebb, mert ki kell szedni az xhtml-ből), aztán van egy javascriptes cucc, aminek le kell futni (ez hívogat egy PHP-t szerver oldalon, hogy ne legyen időtúllépés még akkor sem, ha nagyobb volumenű az update).

Ezt jelenleg úgy a legkényelmesebb megoldani, hogy összedobok egy egyszerű swinges appot, amin fel lehet vinni az oldalak címét, admin felhasználónevet/jelszót és még 1-2 apróságot, aztán egy nagy gombra kattintva végigmegy a site-okon és egyesével frissíti őket.

Erre milyen libeket ajánlanátok?

platformfüggetlen swt alkalmazás

Fórumok

Elkezdtem az swt-vel szórakozni. Olyan programot már sikerült írnom ami fut windows-on, és olyat is ami fut linux-on. Azt viszont nem tudom, hogyan kéne olyat írni, ami mind a két rendszeren tud futni egyszerre, módosítás nélkül (esetleg mindegyik támogatott rendszeren).

Hogy kéne ezt megvalósítani? Azt tudom hogy lehet, mert az eclipse is működik alapból, de hogy?

JAAS JSP-vel

Fórumok

Üdv,

jelenleg a JAAS beüzemelésével vannak gondjaim. JBoss-t használok. Be van állítva a login-config.xml-ben a login modul:


    <application-policy name="webbookcatalog">
        <authentication>
            <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
                <module-option name="dsJndiName">java:/PgDS</module-option>
				<module-option name="principalsQuery">
                     select Password from Principals where PrincipalID=?</module-option>
                <module-option name="rolesQuery">
                    select Role, RoleGroup from Roles where PrincipalID=?</module-option>

            </login-module>
        </authentication>
    </application-policy> 

A web.xml és a jboss-web.xml is ok, egyelőre "admin" role-t követelek meg /*-ra, ezt gondolom nem érdemes bemásolni. Megvan a login form is a megfelelő paraméterekkel, de valamiért nem megy a bejelentkezés, a hiba oldalra dob mindig. Az adatbázisban a következő van:

Principals tábla:
"gabor";"foobar"

Roles tábla:
"gabor";"user";"Roles"
"gabor";"admin";"Roles"

Ja és még azt nem említettem, hogy ennek a login modulnak a default sémáját használom:
Principals(PrincipalID text, Password text)
Roles(PrincipalID text, Role text, RoleGroup text)

A RoleGroup igazából nem tudom micsoda, de példában így láttam, ezért így állítottam be. Valaki tudna adni valami tippet, hogy mi a baj? Köszi előre is.

Ejb értetlenség

Fórumok

Sziasztok!

Próbáltam kideríteni egy dolgot, de sehol nem találtam erre vonatkozóan semmit, ezért kérnélek meg benneteket segítsetek feltárni a szemem. Az állás a következő. Van egy Account entitásom, ami tartalmaz egy AccountData entitást. SOAP service keresztül ellenőrzöm, hogy van-e jogosultsága a usernek a belépéshez, viszont a SOAP service nem adja vissza csak az Accountot.
így működik csodálatosan:
Service
//...
@EJB
private AccountSoapServiceLocal ejbRef;

@WebMethod(operationName = "login")
public Account login(@WebParam(name = "email") String email, @WebParam(name = "password") String password) {
       Account account = ejbRef.login(email, password);
       account.setAccountData(null);
       return account;
}
//...
SessionBean
//...
public Account login(String email, String password) {
       Account account = new Account();

       try {
              Account checkAccount = this.accountHandler.getAccountByEmail(email);

              if (checkAccount.getAccountIsActive() && checkAccount.getPassword().equals(Digest.MD5(password))) {
                     account = checkAccount;
                     //...
              }
       } catch (Exception e) {}

       return account;
}
//...

Ellenben hogyha a account.setAccountData(null); parancsot a SessionBeanben adom ki akár a return account; előtt, tehát nem mergelem az EntityManagerrel, akkor vannak helyzetek, amikor elszáll, és mindeféle EJBException meg EJBTransactioRollbackException (vagy mi) exceptionoket dob null-os messagekkel. Lehet, hogy én tudok valamit rosszul, de nem úgy van, hogy amíg nem mergelem az entitást, addig szabadon módosíthatom.

Köszönöm a segítő válaszokat.

Sonar és Maven

Fórumok

Sziasztok,

Van valakinek tapasztalata Sonar (codehaus.org) szoftver telepítéssel, és beállításával kapcsolatban ? Illetve maven használatával kapcsolatban is szívesen fogadnék segítséget.

Köszi.

JPA QL paraméterezés

Fórumok

EJB-vel kapcsolatos kalandjaim folytatódnak... Jelenleg a probléma, hogy van egy ilyen kód:


	public List<Book> findBasic(String key) {
		Query q = em.createQuery("SELECT a FROM Book a " +
			"WHERE a.title LIKE '%:key%' " +
			"OR a.subtitle LIKE '%:key%' " +
			"OR a.desc LIKE '%:key%'");
		q.setParameter("key", key);
		return q.getResultList();
	}

A szervletből ez így hívódik:


		String key = request.getParameter("key");
		List<Book> res = bookBean.findBasic(key);

És erre egy ilyen kivételt kapok:


javax.ejb.EJBException: java.lang.IllegalArgumentException: org.hibernate.QueryParameterException: Could not locate named parameter [key]

Erre valakinek valami tipp, hogy miért nem megy?

új Java template nyelv

Fórumok

Sziasztok!

Egy projekt kapcsán alkottam egy új template nyelvet. Egyszerű "compiled" template nyelv, a poén az benne, hogy 1-1 leképzést ad a Java forrás és a template forrás között, így ahogy kézenfekvő úgy váltogathatunk a két nézet között.

Azok számára akik Velocityt, FreeMarkert, JSP-t vagy hasonlókat használnak érdekes lehet.

Kiváncsi vagyok a véleményetekre, nézzétek meg!

Itt van fenn: http://rtemplate.sourceforge.net/

LDAP bidi mapping

Fórumok

Sziasztok!

Van egy problémám, amit már kellően agyhalott állapotomban nem tudtam megoldani. Adott egy LDAP könyvtár, benne userek és azoknak jogai. Ezt szerettem volna leképezni domain objektumokra. (A domain egyik felét Hibernate terelgeti, a másikat pedig a spring-ldap project LdapTemplate osztálya.) A userek és jogaik között az alábbi asszociáció áll fent:


public class User
{
  [...]

  private Set<Role> roles;

  [...]
}

public class Role
{
  
  [...]

  private Set<User> members;

  [...]
}

Mint látható ez egy many-to-many bidirectional kapcsolat. Az LdapTemplate használata során mappelnem kell az LDAP struktúrából az entitásokat, így amikor usereket kérdezek le, akkor kitöltöm a roles setet a user memberOf attribútuma alapján. A probléma ezzel az, hogy ilyenkor létre kell hoznom a Role példányokat is, amelyek ismét csak hivatkoznak a Userekre. Ebből ebben a formában egy végtelen ciklus és egy StackOverflowError lesz. A Hibernate ezt a mappedBy attribútum bevezetésével oldja meg, amely kijelöli, hogy melyik a reláció "owning" oldala és így okosan tudja, hogy mit kell csinálni. Az LdapTemplate azonban nem ilyen szofisztikált. Erre keresek valamilyen elegáns, szép megoldást. Lazy loadingos proxyt nem nagyon szeretnék bevezetni a Setekre, mert igazából semmi időm nincs rá és tegnapra kellett volna az egész. :) Mindkét oldalról látnom kell az asszociációt, így az sem jó, hogy unidirectional jellegűre veszem.

A válaszokat előre is köszi,
M.

[megoldva] apache mod_proxy glassfish vs. session

Fórumok

Sziasztok!

Ismét szeretném a segítségeteket kérni. Apache2-ről mod_proxy és mod_proxy_http modulok segítségével irányítom a kéréseket glassfish felé. Deployoltam az alkalmazást, és ha http://foo.bar:8080/x url-en nézem ok minden, de amennyiben proxy-zom a session-ök nem tárolódnak/érem el a következő kéréskor. Nem tudom hogy merre induljak el, a barátom (google) sem mondott eddig semmi használhatót. Hogyan oldható meg, hogy a kecske is jóllakjon meg a káposzta is megmaradjon?

A proxy config, habár nem hiszem hogy itt a baj:

ServerName local.regisztracio.milli.hu
DocumentRoot /srv/www/regisztracio/
ProxyVia On
ProxyRequests Off
ProxyPass / http://localhost:8080/millisoap-war/
ProxyPassReverse / http://localhost:8080/millisoap-war/

Allow from all

ErrorLog /srv/www/regisztracio/error.log
CustomLog /srv/www/regisztracio/access.log combined

Köszi előre is a szíves segítségeket.