that is a pretty generic error, but as it only happens after a while you might solve the problem by caching your object in application scope so it doesn;t have to be instan tiated every time.
application.bcrypt = CreateObject("java", "BCrypt"); obviously check that it exists before creating it , or you are just doing the same thing. On Thu, Dec 18, 2014 at 7:36 PM, Dean Lawrence <dean...@gmail.com> wrote: > > > I am using the java bcrypt class library to encrypt passwords on one of my > sites and it is working fine. However, I am extending the app with a > webservice and using the same bcrypt library to authenticate logins. This > works fine for a period of time and then stops working. > > The error that I receive is "An exception occurred when executing method > checkpw.". The error detail is "The cause of this exception was that: > java.lang.NullPointerException.". Even when I start to receive this error, > I am still able to make the exact same call from within a CF template > without a problem. But being called from the webservice, I get the error. I > have tried reinitializing the app to no avail. The only way that I have > been able to fix the issue is by rebooting CF. I am using ACF 10 and here > is the code that I am using to call bcrypt. > > component displayname="Consumer API" output="false" wsversion="2" > namespace="http://mydomain/" > { > variables.bcrypt = CreateObject("java", "BCrypt"); > > remote struct function authenticate() returnformat="JSON" { > var results = {}; > var memberEmail = ""; > var password = ""; > var token = ""; > > results.status = 0; > results.message = "Invalid email or password"; > > if (isSOAPRequest()){ > try > { > memberEmail = getSOAPRequestHeader("http://mydomain/", > "memberEmail"); > password = getSOAPRequestHeader("http://mydomain/", > "password"); > > if (isValid("email",memberEmail)){ > Member = entityLoad("Member",{email=memberEmail},true); > > if (NOT isNull(Member)){ > if > (bcrypt.checkpw(lcase(password),Member.getMemberPassword())){ > results.message = "Successfully Authenticated"; > token = > variables.utility.formStringEncrypt(Member.getMemberID()); > addSOAPResponseHeader("http://mydomain/", > "token", token, false); > results.status = 1; > results.message = "Member authenticated"; > } else { > addSOAPResponseHeader("http://mydomain/", > "token", token, false); > } > } else { > addSOAPResponseHeader("http://mydomain/", "token", > token, false); > } > } else { > addSOAPResponseHeader("http://mydomain/", "token", > token, false); > } > } > catch(Any e) > { > results.message = "Error processing request."; > sendError(e); > } > } else { > results.message = "Not invoked as a web service"; > } > > return results; > } > } > > Any help would be greatly appreciated. > > -- > > [image: profile picture] *Dean Lawrence* > *President* > Internet Data Technology > *Phone:* 888-438-4381 x701 > *Web:* www.idatatech.com > *Email:* d...@idatatech.com > Programming | Database | Consulting | Training > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:359855 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm