How to make #JsonSnakeCase the default for configuration in Dropwizard - jackson

How will I configure jackson to use snake case in dropwizard instead of putting #JsonSnakeCase in every class ?

And finally am able to find the answer.. Just add below cofiguration.
environment.getObjectMapperFactory().setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES)

Just add this following line in your run() method
environment.getObjectMapper().setPropertyNamingStrategy(
PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);

environment.jersey().register(new JacksonMessageBodyProvider(mapper));

Related

Set custom timeout to Bluetooth-le write with Quasar-Framework/Capacitor

I'm using the Bluetooth-LE community plugin in a Quasar/Capacitor project.
Since version 1.7.0, we can make timeouts configurable. But how? I need help with the syntax. Can someone give me a fonctionnal example with a custom timeout.
Thank you.
I was also looking for that information. Haven't found any details on the documention but the file 'definitions.d.ts' inside the Bluetooth-LE module.
Try this :
const writeFlag = await BleClient.write(
device.deviceId,
SERV_SYSTEM_SETTINGS,
CHAR_RTC,
dvDateTime,
{timeout:(10000)} // <---- this is what you need
);

Using sun.reflect package with openjdk11

Is there a way to use sun.reflect in OpenJDK11, by maybe adding something in "--add-exports"? Our code fails since a jide pkg internally uses sun.reflect package and I'm trying to see if there's a way to make it work.
I've already tried with the below but that doesn't help.
"--add-exports jdk.unsupported/sun.reflect=ALL-UNNAMED"
Here's the exception, where the underlying class references sun.reflect.Reflection
java.lang.NoClassDefFoundError: sun/reflect/Reflection
I had this problem and fixed it by using a newer version of jide. Changing from jide-whatever:3.2.3 to jide-whatever:3.7.6 was enough to make it work in my case.
If you cannot migrate to newer versions, the solution is to make a wrapper around Throwable().getStackTrace()[n].getClass() and put it in WEB-INF/classes folder
This is simple workaround. It works in many cases.
package sun.reflect;
public class Reflection {
public static Class<?> getCallerClass(int n){
StackTraceElement[] elements = new Throwable().getStackTrace();
return elements[n].getClass() ;
}
}
https://github.com/rafaljot/NoClassDefFoundError-sun-reflect-Reflection
It can be fixed when you update the version of the jars.

Using easy-ssl-acceptor in LispWorks

I want to use Hunchentoot's easy-ssl-acceptor in LispWorks. However, I see that this class of acceptor has the following feature syntax #-:hunchentoot-no-ssl.
This feature is indeed present in my *features* list, so I cannot use this class. What is the problem here? Why was :hunchentoot-no-ssl added to my *features*? How can I resolve this so that I can use the easy-ssl-acceptor class?
PS: I am on macOS 10.13 using LispWorks 7.1.
It is unclear how this feature got into your *features*, but the simplest thing to do in this case is to remove it from *features* manually and then force-rebuild Hunchentoot:
* (alexandria:removef *features* :hunchentoot-no-ssl)
* (asdf:load-system :hunchentoot :force t)

yii-user-management Yumuser.php get() on a non-object yum_user_relations

I have just installed the yii-user-management module but when I try to access it via browser I get
Fatal error: Call to a member function get() on a non-object in ..../modules/user/models/YumUser.php on line 368
$relations = Yii::app()->cache->get('yum_user_relations');
Appreciate any help.
It seems like the yii-user-management module requires a cache component for it to work. So in your application config add the cache component as
'cache'=>array(
'class'=>'CDummyCache',
),
Here we are using CDummyCache copmponent which is, as its name says, acts as a dummy. You can replace it by any other cache components as described here
Thanks #dInGd0nG. Your answer works for me too. Just would want to remind people to follow his link. In the link, you will see the configure statement shall be added in
'components'=>array(
......
'cache'=>array(
'class'=>'CDummyCache',
),
)

Yii generates error "Unable to resolve the request <controller/action>"

After logged in successfully, Yii does not executing any page.
Showing an error:
Error 404 Unable to resolve the request "membersdet/index"
Here membersdet is controller Id and index is an action.
Make sure the filename of your controller is EXACTLY "MembersdetController.php". It is case sensitive.
I guess you were developing on local machine under Windows OS and server runs on *nix system. That's normal issue for novice developers, that they forget about case sensitive file system in *nix.
It is because of wrong controller file name given or may be actionIndex() method is not in your controller.
I have had a similar problem and got it solved. In this case the file was correctly named but the class name was wrongly spelled. When these two do not correspond, you could get this error too.
Check case sensitive exactly your controller: MembersdetController
Check alias (common in config/main.php) map with namespace in your controller
Yii::setAlias('#tienn2t', dirname(dirname(__DIR__)) . '/tienn2t');
In MembersdetController.php file
<?php
namespace tienn2t\controllers;
use Yii;
use yii\web\Controller;
class MembersdetController extends Controller{
public function actionIndex(){
echo 1;die;
}
}
There is not enough information in the question, but maybe you have an incorrect .htaccess or if you don't have an htaccess at all you should use the url:
http://host/index.php?r=membersdet/index
Make sure you have MembersdetController in /protected/controllers/ and this class "is a" CController and has a public method named actionIndex().
Check errorHandler block in your config file.
I had fix this error like this
'errorHandler' => [
'errorAction' => 'error/index',
],
By the way you should have appropriate ErrorController in your module and /error/index.php
file in view folder.
Hope will help you.