Google в «научная нотация regexp» показывает количество совпадений, включая этот (не используйте его !!!!), который использует
*** warning: questionable ***
/[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/
, который включает в себя такие случаи, как -.5e7 и + 00000e33 (оба из которых вы не можете разрешить).
Вместо этого я настоятельно рекомендую использовать синтаксис для Doug Crockford Веб-сайт JSON , который явно документирует, что представляет собой число в JSON. Вот соответствующая синтаксическая диаграмма, взятая с этой страницы:
alt text http://www.json.org/number.gif
Если вы посмотрите на строка 456 его скрипта json2.js (безопасное преобразование в / из JSON в javascript), вы увидите эту часть regexp:
/-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/
, которая, по иронии судьбы, не соответствует его синтаксической диаграмме .... (похоже, что я должен указать ошибку) Я считаю, что регулярное выражение, которое реализует эту синтаксическую диаграмму, таково:
/-?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/
, и если вы хотите разрешить начальный +, а также вы получите:
/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/
Добавьте скобки скобок по своему вкусу.
Я также очень рекомендую вам собрать кучу тестовых примеров, чтобы убедиться, что вы включают те возможности, которые вы хотите включить (или не включать), например:
allowed:
+3
3.2e23
-4.70e+9
-.2E-4
-7.6603
not allowed:
+0003 (leading zeros)
37.e88 (dot before the e)
Удачи!
Я сделал несколько небольших изменений, чтобы заставить ваш код работать, используя NetBeans 8.2, JDK 8 и Glassfish 4.1.1 в Windows 10:
@Path
для класса также как methode_test()
. Это пересмотренный класс TestService
:
package pkg1;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path("/demo")
public class TestService
{
@Path("/test")
@GET
@Produces("text/plain")
public String methode_test()
{
return "Hello test";
}
}
Это дополнительный класс, который нужно добавить:
package pkg1;
import javax.ws.rs.core.Application;
@javax.ws.rs.ApplicationPath("sample")
public class ApplicationConfig extends Application {
}
Мой проект получил название DemoService , и поэтому имел контекстный корень DemoService , но в вашем случае используемый URL-адрес, вероятно, будет следующим: http: // localhost: 8080 / TestService / sample / demo / test
Примечания:
Для удобства вы можете установить путь по умолчанию, который будет использоваться в браузере при тестировании вашего проекта:
Выберите , запустите и установите значения Контекстный путь и Относительный URL в зависимости от ситуации:
NetBeans 8.2 предоставляет базовое REST-приложение « Hello World », которое можно создать всего несколькими секунд с помощью мастера проектов: Файл> Новый проект ...> Образцы> Веб-службы> REST: Hello World .