Проще говоря, за возможным исключением Java-апплета, работающего в том же контексте страницы, что и JavaScript, JavaScript не может напрямую вызывать метод Java или наоборот. DWR не вызывает какие-либо методы Java напрямую из JavaScript, он отправляет AJAX-запрос на сервер и использует свой собственный промежуточный уровень для обработки запросов и ответов таким образом, что выглядит так, как будто он вызывает методы Java.
Но в любом случае, типичный подход для получения кода JavaScript на клиенте и кода Java на сервере для общения друг с другом заключается в определении API на сервере, который доступен клиенту. Затем клиент может отправлять запросы (используя AJAX или любой другой механизм, который вы предпочитаете), используя предоставляемый API. Клиент не вызывает какие-либо методы Java напрямую, вместо этого он отправляет запрос на заданный URL-адрес на сервере, который сопоставляется с некоторым фрагментом кода Java. Самые популярные платформы JavaScript предоставляют удобные методы для упрощения обработки запросов AJAX и обратных вызовов.
Если по какой-то причине вы хотите, чтобы функциональность была эквивалентна возможности вызова произвольного метода в произвольном классе и чтобы вам был возвращен результат, тогда вы можете определить метод API, который принимает в качестве параметров имя класса и имя метода и затем использует отражение для выполнения вызова метода. Это, вероятно, будет очень близко к тому, что делает серверная часть DWR.