ik heb geprobeerd een DAO-pattern te gebruiken zodat mijn teerbeminde webservice een xml-database kan aanspreken.
volgende klassen en methoden staan dus in het dataAccess package:
abstract class DAOFactory : public static DAOFactory getDAOFactory(..) (returnt dus de onderstaande factory)
class DAOFactoryXML: public UserDAO getUserDAO
abstract class DAOUser
class DAOUserXML
nu wil ik via de klasse DAOUserXML de methode boolean checkLogin(string login,string password) aanspreken. of dit nu static is of niet, kan mij niet zoveel schelen.
mijn webservice ziet er als volgt uit:
ik kan deze code dus niet aanroepen vanop afstand, echter wel indien ik een main klasse maak die er zo uitziet:
indien ik de implementie gewoon verander naar "return true" ofzo, dan werkt het wel. het lijkt alsof de webservice enkel static methods kan aanroepen vanuit die methodes. probleem is dat ik door die daofactory wat problemen heb met static methods: abstract static methods bestaan namelijk niet en ook een interface kan geen static methods bevatten. via debuggen enzo ben ik er opgekomen dat hij strandt op
heeft er iemand een idee waarom dit een probleem geeft bij het remote aanroepen?
volgende klassen en methoden staan dus in het dataAccess package:
abstract class DAOFactory : public static DAOFactory getDAOFactory(..) (returnt dus de onderstaande factory)
class DAOFactoryXML: public UserDAO getUserDAO
abstract class DAOUser
class DAOUserXML
nu wil ik via de klasse DAOUserXML de methode boolean checkLogin(string login,string password) aanspreken. of dit nu static is of niet, kan mij niet zoveel schelen.
mijn webservice ziet er als volgt uit:
Java:
1
2
3
4
5
6
7
| public class portalWSImpl implements portalWSSEI { public boolean controleerLogin(java.lang.String login, java.lang.String password) { DAOFactory daof=DAOFactory.getDAOFactory("xml"); return daof.getUserDAO().checkLogin(login, password); } } |
ik kan deze code dus niet aanroepen vanop afstand, echter wel indien ik een main klasse maak die er zo uitziet:
Java:
1
2
3
4
| public static void main(String args[]){ portalWSImpl pws=new portalWSImpl(); System.out.println(pws.controleerLogin("bram", "qwerty")); } |
indien ik de implementie gewoon verander naar "return true" ofzo, dan werkt het wel. het lijkt alsof de webservice enkel static methods kan aanroepen vanuit die methodes. probleem is dat ik door die daofactory wat problemen heb met static methods: abstract static methods bestaan namelijk niet en ook een interface kan geen static methods bevatten. via debuggen enzo ben ik er opgekomen dat hij strandt op
Java:
1
| return daof.getUserDAO().checkLogin(login, password); |
heeft er iemand een idee waarom dit een probleem geeft bij het remote aanroepen?